]> git.saurik.com Git - apple/javascriptcore.git/blame - ChangeLog
JavaScriptCore-7601.1.46.3.tar.gz
[apple/javascriptcore.git] / ChangeLog
CommitLineData
ed1e77d3 12015-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 292015-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 402015-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 ==