Bug 146431 - Allow object allocation sinking through GetScope, GetExecutable and SkipScope nodes
Summary: Allow object allocation sinking through GetScope, GetExecutable and SkipScope...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Basile Clement
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2015-06-29 15:12 PDT by Basile Clement
Modified: 2015-06-30 15:43 PDT (History)
4 users (show)

See Also:


Attachments
Patch (4.15 KB, patch)
2015-06-29 15:13 PDT, Basile Clement
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Basile Clement 2015-06-29 15:12:34 PDT
We are currently considering GetScope, GetExecutable and SkipScope nodes as blocking sinking of function and allocations, while this definitely shouldn't be the case.
This is a ~10% speedup on octane/earley (Conf#1 is ToT, Conf#2 is ToT w/ this patch):

Collected 6 samples per benchmark/VM, with 6 VM invocations per benchmark. Emitted a call to gc()
between sample measurements. Used 1 benchmark iteration per VM invocation for warm-up. Used the
jsc-specific preciseTime() function to get microsecond-level timing. Reporting benchmark execution
times with 95% confidence intervals in milliseconds.

                             Conf#1                    Conf#2                                      

encrypt                 0.31553+-0.00094          0.31282+-0.00553       
decrypt                 5.12296+-0.00708          5.12107+-0.00895       
deltablue      x2       0.24604+-0.00074    ?     0.24641+-0.00151       ?
earley                  0.48200+-0.00316    ^     0.42697+-0.00062       ^ definitely 1.1289x faster
boyer                   6.69585+-0.01114    ?     6.69660+-0.01937       ?
navier-stokes  x2       6.99958+-0.00259          6.99893+-0.00333       
raytrace       x2       1.54523+-0.06374    ?     1.55159+-0.05032       ?
richards       x2       0.16939+-0.00249          0.16901+-0.00175       
splay          x2       0.48342+-0.00306          0.48300+-0.00416       
regexp         x2      36.77174+-0.17936         36.63545+-0.07532       
pdfjs          x2      55.24960+-0.27697         55.16416+-0.33324       
mandreel       x2      68.13311+-0.22945         68.00004+-0.15431       
gbemu          x2      59.30592+-0.40256         58.82190+-1.22108       
closure                 0.87790+-0.00269    ?     0.87852+-0.00340       ?
jquery                 11.57117+-0.11659         11.52107+-0.03844       
box2d          x2      16.72202+-0.06821    ?    16.73307+-0.04231       ?
zlib           x2     516.09832+-21.15309   ?   516.42894+-18.65591      ?
typescript     x2    1066.03271+-11.93493   ?  1074.22778+-7.63335       ?

<geometric>             8.68007+-0.02685          8.63929+-0.03370         might be 1.0047x faster
Comment 1 Basile Clement 2015-06-29 15:13:29 PDT
Created attachment 255783 [details]
Patch
Comment 2 Basile Clement 2015-06-30 15:19:58 PDT
Comment on attachment 255783 [details]
Patch

Clearing flags on attachment: 255783

Committed r186136: <http://trac.webkit.org/changeset/186136>
Comment 3 Basile Clement 2015-06-30 15:20:02 PDT
All reviewed patches have been landed.  Closing bug.
Comment 4 Geoffrey Garen 2015-06-30 15:43:59 PDT
Nice!