]>
Commit | Line | Data |
---|---|---|
ed1e77d3 | 1 | 2015-07-31 Lucas Forschler <lforschler@apple.com> |
2d39b0e3 | 2 | |
ed1e77d3 | 3 | Merge r187579 |
2d39b0e3 | 4 | |
ed1e77d3 | 5 | 2015-07-29 Filip Pizlo <fpizlo@apple.com> |
2d39b0e3 | 6 | |
ed1e77d3 A |
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 | |
2d39b0e3 | 10 | |
ed1e77d3 | 11 | Reviewed by Mark Lam. |
40a37d08 | 12 | |
ed1e77d3 A |
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. | |
40a37d08 | 19 | |
ed1e77d3 A |
20 | This fixes the bug by removing the code to optimize away PutStacks in |
21 | ArgumentsEliminationPhase. | |
40a37d08 | 22 | |
ed1e77d3 A |
23 | * dfg/DFGArgumentsEliminationPhase.cpp: |
24 | * tests/stress/varargs-inlining-underflow.js: Added. | |
25 | (baz): | |
40a37d08 | 26 | (bar): |
40a37d08 A |
27 | (foo): |
28 | ||
ed1e77d3 | 29 | 2015-07-24 Matthew Hanson <matthew_hanson@apple.com> |
40a37d08 | 30 | |
ed1e77d3 | 31 | Merge r187139. rdar://problem/21847618 |
40a37d08 | 32 | |
ed1e77d3 | 33 | 2015-07-21 Filip Pizlo <fpizlo@apple.com> |
40a37d08 | 34 | |
ed1e77d3 | 35 | Unreviewed, fix a lot of tests. Need to initialize WTF threading sooner. |
40a37d08 | 36 | |
ed1e77d3 | 37 | * jsc.cpp: |
40a37d08 A |
38 | (main): |
39 | ||
ed1e77d3 | 40 | 2015-07-23 Lucas Forschler <lforschler@apple.com> |
81345200 | 41 | |
ed1e77d3 | 42 | Merge r187125 |
81345200 | 43 | |
ed1e77d3 | 44 | 2015-07-21 Filip Pizlo <fpizlo@apple.com> |
81345200 | 45 | |
ed1e77d3 A |
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 | |
81345200 A |
49 | |
50 | Reviewed by Geoffrey Garen. | |
51 | ||
ed1e77d3 A |
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. | |
81345200 | 70 | (main): |
ed1e77d3 | 71 | (CommandLine::parseArguments): |
81345200 | 72 | (jscmain): |
ed1e77d3 A |
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. | |
81345200 | 76 | * runtime/Options.h: |
81345200 | 77 | |
ed1e77d3 | 78 | == Rolled over to ChangeLog-2015-07-23 == |