Closed
Bug 563944
Opened 15 years ago
Closed 14 years ago
Inline branchover labels reset too much optimizer state
Categories
(Tamarin Graveyard :: Baseline JIT (CodegenLIR), defect, P3)
Tamarin Graveyard
Baseline JIT (CodegenLIR)
Tracking
(Not tracked)
RESOLVED
FIXED
Q3 11 - Serrano
People
(Reporter: edwsmith, Assigned: wmaddox)
References
Details
(Whiteboard: PACMAN)
Method inlining generally, and inlining fast paths for partly typed and untyped operators requires creating diamond-shape local control flow. This currently causes VarTracker and CSEFilter to completely reset their state, suppressing desireable optimizations in the surrounding code.
bug 542905 discusses the problems with CSEFilter.
Reporter | ||
Updated•15 years ago
|
Flags: flashplayer-qrb+
Priority: -- → P3
Target Milestone: --- → flash10.2
Reporter | ||
Updated•14 years ago
|
Whiteboard: PACMAN
Assignee | ||
Updated•14 years ago
|
Assignee: nobody → wmaddox
Assignee | ||
Comment 1•14 years ago
|
||
Suspend/Resume CSE around synthetic control flow diamonds:
https://bugzilla.mozilla.org/attachment.cgi?id=471365&action=diff
Propagate VarTracker state along forward branches:
https://bugzilla.mozilla.org/attachment.cgi?id=468889&action=diff
Comparing the performance of a stack of arithmetic inlining patches
without the above, and with. I.e., '+' represents improvement due
to vartracker and cse patches.
Metric: time
Dir: jsbench/
Crypt 4122 4125 3946 3956.5 4.3 4.1 +
Euler 7996 8020 7864 7878 1.7 1.8 +
FFT 7901 7951.5 7396 7430 6.4 6.6 ++
HeapSort 3227 3228 3245 3251.5 -0.6 -0.7 -
LUFact 6165 6166.5 5936 5964 3.7 3.3 +
Moldyn 8061 8070.5 7985 7985.5 0.9 1.1 +
RayTracer 7606 7611 7454 7465 2.0 1.9 +
SOR 36566 36639 36162 36164 1.1 1.3 +
Series 9675 9682.5 9512 9519.5 1.7 1.7 +
SparseMatmult 10510 10572 10649 10723 -1.3 -1.4 -
Dir: jsbench/typed/
Crypt 1076 1076.5 1066 1066 0.9 1.0 +
Euler 10438 10442 10272 10280.5 1.6 1.5 +
FFT 4670 4681.5 4382 4391 6.2 6.2 ++
HeapSort 1600 1601.5 1653 1654.5 -3.3 -3.3 -
LUFact 8274 8297.5 7917 7919 4.3 4.6 +
Moldyn 4687 4695 4575 4589.5 2.4 2.2 +
RayTracer 1377 1379 1335 1339 3.1 2.9 +
SOR 24191 24216 23496 23521 2.9 2.9 +
Series 8094 8099 8173 8173.5 -1.0 -0.9 -
SparseMatmult 2507 2507.5 2505 2512.5 0.1 -0.2
Metric: v8 custom v8 normalized metric (hardcoded in the test)
Dir: v8/
crypto 401 399.5 427 427 6.5 6.9 ++
deltablue 1694 1688.5 1714 1707.5 1.2 1.1 +
earley-boyer 977 970.5 989 987 1.2 1.7 +
raytrace 2714 2709.5 2768 2765 2.0 2.0 +
richards 1017 1016 1036 1036 1.9 2.0 +
Dir: v8/typed/
crypto 406 405.5 436 434 7.4 7.0 ++
deltablue 2399 2396.5 2408 2404.5 0.4 0.3 +
earley-boyer 985 983 974 971.5 -1.1 -1.2 -
raytrace 5957 5948 6062 6056 1.8 1.8 +
richards 2056 2054.5 2058 2057 0.1 0.1
Dir: v8.5/js/
crypto 364 363.5 383 383 5.2 5.4 ++
deltablue 293 293 290 290 -1.0 -1.0 -
earley-boyer 971 970 967 965.5 -0.4 -0.5 -
raytrace 632 632 633 631.5 0.2 -0.1
regexp 79.4 79.2 80.1 80.0 0.9 1.0
richards 244 244 240 240 -1.6 -1.6 -
splay 708 705.5 713 708 0.7 0.4
Dir: v8.5/optimized/
crypto 3526 3525.5 3529 3524.5 0.1 -0.0
deltablue 2844 2834 2852 2847.5 0.3 0.5
earley-boyer 981 980.5 976 971 -0.5 -1.0
raytrace 7189 7175 7310 7310 1.7 1.9 +
regexp 79.4 79.4 80.2 80.1 1.0 0.9 +
richards 3475 3473 3623 3619 4.3 4.2 +
splay 5223 5193 5242 5217 0.4 0.5
Dir: v8.5/typed/
crypto 2173 2173 2183 2182 0.5 0.4 +
deltablue 3157 3152.5 3164 3160 0.2 0.2
earley-boyer 975 969.5 981 979.5 0.6 1.0
raytrace 7203 7196 7296 7282 1.3 1.2 +
regexp 78.4 78.3 80.4 80.2 2.6 2.4 +
richards 3471 3469.5 3615 3615 4.1 4.2 +
splay 882 881 885 883 0.3 0.2 +
Dir: v8.5/untyped/
crypto 392 392 422 421 7.7 7.4 ++
deltablue 1710 1708 1716 1715 0.4 0.4 +
earley-boyer 975 964.5 983 983 0.8 1.9
raytrace 2909 2902 2967 2962.5 2.0 2.1 +
regexp 78.9 78.9 80 80.0 1.4 1.3 +
richards 423 422.5 423 422.5 0 0
splay 841 840.5 855 854.5 1.7 1.7 +
Assignee | ||
Comment 2•14 years ago
|
||
Dependent bugs fixed, closing.
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Updated•14 years ago
|
Flags: flashplayer-bug+
You need to log in
before you can comment on or make changes to this bug.
Description
•