]>
Commit | Line | Data |
---|---|---|
1 | 2015-07-31 Lucas Forschler <lforschler@apple.com> | |
2 | ||
3 | Merge r187579 | |
4 | ||
5 | 2015-07-29 Filip Pizlo <fpizlo@apple.com> | |
6 | ||
7 | DFG::ArgumentsEliminationPhase should emit a PutStack for all of the GetStacks that the ByteCodeParser emitted | |
8 | https://bugs.webkit.org/show_bug.cgi?id=147433 | |
9 | rdar://problem/21668986 | |
10 | ||
11 | Reviewed by Mark Lam. | |
12 | ||
13 | Ideally, the ByteCodeParser would only emit SetArgument nodes for named arguments. But | |
14 | currently that's not what it does - it emits a SetArgument for every argument that a varargs | |
15 | call may pass. Each SetArgument gets turned into a GetStack. This means that if | |
16 | ArgumentsEliminationPhase optimizes away PutStacks for those varargs arguments that didn't | |
17 | get passed or used, we get degenerate IR where we have a GetStack of something that didn't | |
18 | have a PutStack. | |
19 | ||
20 | This fixes the bug by removing the code to optimize away PutStacks in | |
21 | ArgumentsEliminationPhase. | |
22 | ||
23 | * dfg/DFGArgumentsEliminationPhase.cpp: | |
24 | * tests/stress/varargs-inlining-underflow.js: Added. | |
25 | (baz): | |
26 | (bar): | |
27 | (foo): | |
28 | ||
29 | 2015-07-24 Matthew Hanson <matthew_hanson@apple.com> | |
30 | ||
31 | Merge r187139. rdar://problem/21847618 | |
32 | ||
33 | 2015-07-21 Filip Pizlo <fpizlo@apple.com> | |
34 | ||
35 | Unreviewed, fix a lot of tests. Need to initialize WTF threading sooner. | |
36 | ||
37 | * jsc.cpp: | |
38 | (main): | |
39 | ||
40 | 2015-07-23 Lucas Forschler <lforschler@apple.com> | |
41 | ||
42 | Merge r187125 | |
43 | ||
44 | 2015-07-21 Filip Pizlo <fpizlo@apple.com> | |
45 | ||
46 | Fixed VM pool allocation should have a reserve for allocations that cannot fail | |
47 | https://bugs.webkit.org/show_bug.cgi?id=147154 | |
48 | rdar://problem/21847618 | |
49 | ||
50 | Reviewed by Geoffrey Garen. | |
51 | ||
52 | This adds the notion of a JIT pool reserve fraction. Some fraction, currently 1/4, of | |
53 | the JIT pool is reserved for allocations that cannot fail. It makes sense to make this | |
54 | a fraction rather than a constant because each allocation that can fail may cause some | |
55 | number of allocations that cannot fail (for example, the OSR exit thunks that we | |
56 | compile when we exit from some CodeBlock cannot fail). | |
57 | ||
58 | I've tested this by adding a test mode where we artificially limit the JIT pool size. | |
59 | Prior to the fix, we had >20 failures. Now we have none. | |
60 | ||
61 | * heap/GCLogging.cpp: | |
62 | (WTF::printInternal): I needed a dump method on Options members when debugging this. | |
63 | * heap/GCLogging.h: | |
64 | * jit/ExecutableAllocator.h: Raise the ARM64 limit to 32MB because 16MB is cutting it too close. | |
65 | * jit/ExecutableAllocatorFixedVMPool.cpp: | |
66 | (JSC::FixedVMPoolExecutableAllocator::FixedVMPoolExecutableAllocator): Add the ability to artificially limit JIT pool size for testing. | |
67 | (JSC::ExecutableAllocator::memoryPressureMultiplier): Implement the reserve when computing memory pressure for JIT tier-up heuristics. | |
68 | (JSC::ExecutableAllocator::allocate): Implement the reserve when allocating can-fail things. | |
69 | * jsc.cpp: Rewire some options parsing so that CommandLine happens before we create the JIT pool. | |
70 | (main): | |
71 | (CommandLine::parseArguments): | |
72 | (jscmain): | |
73 | * runtime/Options.cpp: | |
74 | (JSC::OptionRange::dump): I needed a dump method on Options members when debugging this. | |
75 | (JSC::Options::initialize): This can now be called more than once. | |
76 | * runtime/Options.h: | |
77 | ||
78 | == Rolled over to ChangeLog-2015-07-23 == |