If you think a bug might affect users in the 57 release, please set the correct tracking and status flags for Release Management.

Inline branchover labels reset too much optimizer state

RESOLVED FIXED in Q3 11 - Serrano

Status

Tamarin
Baseline JIT (CodegenLIR)
P3
major
RESOLVED FIXED
8 years ago
7 years ago

People

(Reporter: Edwin Smith, Assigned: William Maddox)

Tracking

(Blocks: 1 bug)

unspecified
Q3 11 - Serrano
Dependency tree / graph
Bug Flags:
flashplayer-qrb +
flashplayer-bug +

Details

(Whiteboard: PACMAN)

(Reporter)

Description

8 years ago
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

8 years ago
Depends on: 542905
(Reporter)

Updated

8 years ago
Blocks: 561249, 562744

Updated

8 years ago
Flags: flashplayer-qrb+
Priority: -- → P3
Target Milestone: --- → flash10.2
(Reporter)

Updated

8 years ago
Depends on: 564580
(Reporter)

Updated

7 years ago
Whiteboard: PACMAN
(Assignee)

Updated

7 years ago
Assignee: nobody → wmaddox
(Assignee)

Comment 1

7 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 +
(Reporter)

Updated

7 years ago
Blocks: 515722
(Assignee)

Comment 2

7 years ago
Dependent bugs fixed, closing.
Status: NEW → RESOLVED
Last Resolved: 7 years ago
Resolution: --- → FIXED

Updated

7 years ago
Flags: flashplayer-bug+
You need to log in before you can comment on or make changes to this bug.