[webkit-reviews] review requested: [Bug 145272] Allow DFGClobberize to return non-node constants that must be later created : [Attachment 253531] Patch
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Thu May 21 10:41:18 PDT 2015
Basile Clement <basile_clement at apple.com> has asked for review:
Bug 145272: Allow DFGClobberize to return non-node constants that must be later
created
https://bugs.webkit.org/show_bug.cgi?id=145272
Attachment 253531: Patch
https://bugs.webkit.org/attachment.cgi?id=253531&action=review
--- Description ---
This allows to perform GCSE on various derived properties, e.g. NewArray and
NewArrayBuffer operations can now def() their length and elements.
However benchmark times are showing a slight slowdown in most cases, possibly
due to LazyNode having twice the size of a Node*, so I am not sure this is
worth pursuing.
VMs tested:
"r184563" at /Volumes/Data/secondary/OpenSource/WebKitBuild/Release/jsc
"LazyNode" at
/Volumes/Data/secondary/OpenSource/WebKitBuild/LazyNode/Release/jsc
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.
r184563
LazyNode
SunSpider:
3d-cube 5.5958+-0.0865 ?
5.8460+-0.4815 ? might be 1.0447x slower
3d-morph 6.2566+-0.2356
6.2029+-0.0786
3d-raytrace 7.3565+-0.5512 ?
7.5049+-0.7255 ? might be 1.0202x slows-binary-trees
2.5433+-0.0671 2.5153+-0.0792 might be 1.0111x
faster
access-fannkuch 6.4220+-0.1774 ?
6.4694+-0.2324 ?
access-nbody 3.2775+-0.1311 ?
3.2961+-0.1086 ?
access-nsieve 3.7972+-0.0496 ?
3.8669+-0.1252 ? might be 1.0184x slower
bitops-3bit-bits-in-byte 1.8843+-0.0307
1.8678+-0.0371
bitops-bits-in-byte 4.0953+-0.3240
3.9525+-0.0235 might be 1.0361x faster
bitops-bitwise-and 2.3938+-0.0743 ?
2.4095+-0.1241 ?
bitops-nsieve-bits 3.3548+-0.0307 ?
3.4363+-0.0969 ? might be 1.0243x slower
controlflow-recursive 2.5837+-0.0482 ?
2.6094+-0.0921 ?
crypto-aes 4.8667+-0.2032 ?
4.9058+-0.1634 ?
crypto-md5 3.2022+-0.1813
3.0210+-0.0637 might be 1.0600x faster
crypto-sha1 2.9074+-0.0750 ?
2.9875+-0.0803 ? might be 1.0275x slower
date-format-tofte 9.7618+-0.1570 !
10.1823+-0.2422 ! definitely 1.0431x slower
date-format-xparb 6.0007+-0.2546
5.9954+-0.1352
math-cordic 3.4667+-0.0440 ?
3.4802+-0.0950 ?
math-partial-sums 5.7629+-0.1971
5.7099+-0.0955
math-spectral-norm 2.2364+-0.0417
2.2328+-0.0342
regexp-dna 7.6018+-0.4129 ?
7.7063+-0.2153 ? might be 1.0138x slower
string-base64 4.9342+-0.1932 ?
5.3086+-0.5814 ? might be 1.0759x slower
string-fasta 7.1153+-0.4140
7.0105+-0.0973 might be 1.0150x faster
string-tagcloud 9.6119+-0.2963 ?
9.6543+-0.2093 ?
string-unpack-code 23.0662+-0.3903
22.8006+-0.7064 might be 1.0117x faster
string-validate-input 5.1487+-0.1521 ?
5.2473+-0.1480 ? might be 1.0191x slower
<arithmetic> 5.5863+-0.0374 ?
5.6238+-0.0468 ? might be 1.0067x slower
r184563
LazyNode
LongSpider:
3d-cube 913.7970+-3.3810
912.0046+-7.7612
3d-morph 1621.1681+-7.4300
1618.3591+-2.6318
3d-raytrace 761.9025+-4.0496 ?
770.3277+-5.0641 ? might be 1.0111x slower
access-binary-trees 982.5473+-4.5580
980.5644+-5.1910
access-fannkuch 347.5348+-7.0749 ?
356.8676+-5.2365 ? might be 1.0269x slower
access-nbody 657.4551+-4.4060 ?
658.2690+-6.1242 ?
access-nsieve 456.2196+-1.8920 ?
458.2618+-4.7839 ?
bitops-3bit-bits-in-byte 50.2865+-1.0622
49.3991+-0.4626 might be 1.0180x faster
bitops-bits-in-byte 96.2498+-2.0276
95.4416+-1.9466
bitops-nsieve-bits 458.2042+-1.3964 ?
458.8349+-2.2730 ?
controlflow-recursive 516.0721+-10.3228
507.4290+-9.1283 might be 1.0170x faster
crypto-aes 705.8217+-3.7954 ?
710.3498+-7.3331 ?
crypto-md5 556.6390+-3.0809
552.6717+-8.7751
crypto-sha1 650.5811+-3.1077 ?
650.6198+-5.1834 ?
date-format-tofte 753.5545+-10.2933 ?
767.4705+-30.7566 ? might be 1.0185x slower
date-format-xparb 801.0511+-15.4129 ?
821.0804+-53.1946 ? might be 1.0250x slower
hash-map 178.6357+-2.6035
177.4950+-3.6629
math-cordic 625.6297+-2.3321 ?
626.9688+-2.6336 ?
math-partial-sums 536.1773+-2.1122 ?
537.3185+-1.6334 ?
math-spectral-norm 599.7354+-2.0827
597.9998+-0.8408
string-base64 387.0317+-6.3622 ?
387.5868+-1.7826 ?
string-fasta 440.2025+-3.0652 ?
445.1368+-5.1657 ? might be 1.0112x slower
string-tagcloud 211.3362+-2.1322 ?
211.5856+-2.2579 ?
<geometric> 468.2684+-1.4996 ?
469.1828+-1.3670 ? might be 1.0020x slower
r184563
LazyNode
V8Spider:
crypto 60.1779+-0.4219 ?
60.9095+-0.7864 ? might be 1.0122x slower
deltablue 78.5908+-0.7993 ?
81.3490+-2.2980 ? might be 1.0351x slower
earley-boyer 50.6913+-0.9270 ?
52.3994+-0.9749 ? might be 1.0337x slower
raytrace 35.0801+-0.5549 ?
35.6145+-1.1122 ? might be 1.0152x slower
regexp 83.4762+-0.6414 !
85.9648+-0.8090 ! definitely 1.0298x slower
richards 85.6635+-1.3492 ?
86.0355+-1.8324 ?
splay 42.7482+-2.1486
40.5745+-2.1689 might be 1.0536x faster
<geometric> 59.2646+-0.5336 ?
59.9100+-0.7483 ? might be 1.0109x slower
r184563
LazyNode
Octane:
encrypt 0.23868+-0.00089
0.23848+-0.00076
decrypt 4.10974+-0.03742
4.09817+-0.01296
deltablue x2 0.20225+-0.00107 ?
0.20401+-0.00245 ?
earley 0.40597+-0.00757
0.40357+-0.00526
boyer 5.34681+-0.04248 ?
5.36599+-0.06054 ?
navier-stokes x2 5.48995+-0.00284 ?
5.50454+-0.03203 ?
raytrace x2 1.27543+-0.03174
1.27363+-0.07198
richards x2 0.12174+-0.00077 ?
0.12240+-0.00164 ?
splay x2 0.41571+-0.00330
0.41443+-0.00351
regexp x2 31.57241+-0.13366 !
32.58668+-0.21558 ! definitely 1.0321x slower
pdfjs x2 44.50533+-0.19535
44.38525+-0.20375
mandreel x2 56.44360+-0.61245 ?
56.45549+-0.47209 ?
gbemu x2 45.43001+-0.54924 ?
46.05530+-0.23286 ? might be 1.0138x slower
closure 0.63733+-0.00747 ?
0.64022+-0.00110 ?
jquery 8.03837+-0.03164 ?
8.05255+-0.04257 ?
box2d x2 13.90540+-0.08320 ?
14.07070+-0.12457 ? might be 1.0119x slower
zlib x2 417.60479+-15.05195 ?
428.88154+-2.71078 ? might be 1.0270x slower
typescript x2 879.91752+-9.56239 ?
886.98694+-11.00127 ?
<geometric> 6.95968+-0.02457 ?
7.00677+-0.03133 ? might be 1.0068x slower
r184563
LazyNode
Kraken:
ai-astar 328.873+-9.072
324.693+-8.547 might be 1.0129x faster
audio-beat-detection 117.331+-0.635 ?
118.743+-3.178 ? might be 1.0120x slower
audio-dft 118.772+-1.424
118.440+-0.605
audio-fft 85.740+-0.442 ?
88.176+-2.954 ? might be 1.0284x slower
audio-oscillator 77.799+-1.136 ?
77.890+-0.951 ?
imaging-darkroom 110.156+-0.334 ?
111.802+-2.453 ? might be 1.0149x slower
imaging-desaturate 69.340+-1.943
68.271+-0.226 might be 1.0157x faster
imaging-gaussian-blur 115.611+-0.808 ?
116.098+-0.645 ?
json-parse-financial 48.291+-0.758
47.464+-0.731 might be 1.0174x faster
json-stringify-tinderbox 30.112+-0.525 ?
30.895+-0.637 ? might be 1.0260x slower
stanford-crypto-aes 62.264+-1.442 ?
63.035+-1.425 ? might be 1.0124x slower
stanford-crypto-ccm 54.121+-1.409 ?
56.132+-1.928 ? might be 1.0371x slower
stanford-crypto-pbkdf2 123.101+-0.886 ?
123.181+-0.746 ?
stanford-crypto-sha256-iterative 47.185+-0.471
47.178+-0.569
<arithmetic> 99.193+-0.579 ?
99.428+-0.759 ? might be 1.0024x slower
r184563
LazyNode
JSRegress:
abs-boolean 2.9448+-0.1133
2.9204+-0.0708
adapt-to-double-divide 17.7455+-0.3221 ?
17.8637+-0.3871 ?
aliased-arguments-getbyval 1.4830+-0.0552 ?
1.5621+-0.0788 ? might be 1.0533x slower
allocate-big-object 2.9347+-0.1707
2.8660+-0.1429 might be 1.0240x faster
arguments-named-and-reflective 11.7869+-0.4247 ?
11.8432+-0.2650 ?
arguments-out-of-bounds 15.5932+-0.3579
15.3845+-0.3204 might be 1.0136x faster
arguments-strict-mode 10.9822+-0.2438 ?
11.0573+-0.4500 ?
arguments 9.7804+-0.1164 ?
9.8039+-0.2232 ?
arity-mismatch-inlining 1.0749+-0.0243 ?
1.1048+-0.0421 ? might be 1.0278x slower
array-access-polymorphic-structure 6.8218+-0.3136
6.6059+-0.1839 might be 1.0327x faster
array-nonarray-polymorhpic-access 33.4447+-0.8074 ?
34.1285+-0.8454 ? might be 1.0204x slower
array-prototype-every 88.3684+-0.9195
87.8878+-0.6348
array-prototype-forEach 86.0128+-1.9091
85.7215+-0.5540
array-prototype-map 94.4423+-1.5329 ?
97.1439+-2.7135 ? might be 1.0286x slower
array-prototype-some 89.2525+-2.0830
88.8333+-1.3243
array-splice-contiguous 46.9301+-0.5436 ^
44.5112+-0.8715 ^ definitely 1.0543x faster
array-with-double-add 4.4251+-0.1306 ?
4.4317+-0.1238 ?
array-with-double-increment 3.5485+-0.0755 ?
3.6508+-0.0956 ? might be 1.0288x slower
array-with-double-mul-add 5.3842+-0.1401
5.3270+-0.0385 might be 1.0107x faster
array-with-double-sum 3.5695+-0.0798 ?
3.5841+-0.1253 ?
array-with-int32-add-sub 7.2261+-0.1833 ?
7.3567+-0.2706 ? might be 1.0181x slower
array-with-int32-or-double-sum 3.6238+-0.1018 ?
3.7216+-0.1043 ? might be 1.0270x slower
ArrayBuffer-DataView-alloc-large-long-lived
32.7051+-0.6701 ?
33.2933+-1.1491 ? might be 1.0180x slower
ArrayBuffer-DataView-alloc-long-lived 13.8057+-0.5105
13.7291+-0.8062
ArrayBuffer-Int32Array-byteOffset 4.2892+-0.4647
4.1637+-0.1067 might be 1.0301x faster
ArrayBuffer-Int8Array-alloc-large-long-lived
33.8123+-0.6517
33.2284+-0.6405 might be 1.0176x faster
ArrayBuffer-Int8Array-alloc-long-lived-buffer
22.5682+-0.4724 ?
22.6937+-0.8574 ?
ArrayBuffer-Int8Array-alloc-long-lived 13.3350+-0.4488 ^
12.5682+-0.2589 ^ definitely 1.0610x faster
ArrayBuffer-Int8Array-alloc 10.8617+-0.3366
10.8299+-0.3658
asmjs_bool_bug 8.0946+-0.3371
7.9809+-0.1819 might be 1.0143x faster
assign-custom-setter-polymorphic 3.5849+-0.0782 ^
3.4071+-0.0815 ^ definitely 1.0522x faster
assign-custom-setter 4.7427+-0.0876 ^
4.4633+-0.1110 ^ definitely 1.0626x faster
basic-set 9.6147+-0.1984 ?
9.8532+-0.1237 ? might be 1.0248x slower
big-int-mul 4.3864+-0.0682 ?
4.4386+-0.0944 ? might be 1.0119x slower
boolean-test 3.3689+-0.0545 ?
3.4175+-0.1003 ? might be 1.0144x slower
branch-fold 4.2027+-0.1267
4.1424+-0.1083 might be 1.0146x faster
branch-on-string-as-boolean 19.1180+-0.4156
18.9506+-0.3172
by-val-generic 8.3842+-0.3366
8.2486+-0.2397 might be 1.0164x faster
call-spread-apply 31.9555+-0.6495
31.7853+-1.2550
call-spread-call 26.8160+-0.4524 ?
26.9495+-0.9921 ?
captured-assignments 0.5684+-0.0173 ?
0.5750+-0.0852 ? might be 1.0117x slower
cast-int-to-double 5.8539+-0.1164
5.8433+-0.1658
cell-argument 8.8365+-0.4118
8.6899+-0.2489 might be 1.0169x faster
cfg-simplify 3.1240+-0.0933
3.0292+-0.0394 might be 1.0313x faster
chain-getter-access 9.8833+-0.3651 ?
9.9398+-0.3499 ?
cmpeq-obj-to-obj-other 10.5902+-0.0293 !
11.2344+-0.2592 ! definitely 1.0608x slower
constant-test 5.5092+-0.0841 ?
5.5446+-0.1489 ?
create-lots-of-functions 11.6818+-0.2407 ?
12.0720+-0.2098 ? might be 1.0334x slower
DataView-custom-properties 38.1008+-0.4833
37.6851+-0.4088 might be 1.0110x faster
deconstructing-parameters-overridden-by-function
0.6576+-0.0389 ?
0.6965+-0.0699 ? might be 1.0592x slower
delay-tear-off-arguments-strictmode 14.6068+-0.3364 ?
14.6665+-0.4411 ?
deltablue-varargs 221.4560+-2.0287 ?
228.1925+-7.6578 ? might be 1.0304x slower
destructuring-arguments 18.1044+-0.2746 ?
18.1785+-0.4288 ?
destructuring-swap 5.6447+-0.0732
5.6069+-0.1097
direct-arguments-getbyval 1.5212+-0.1373
1.4899+-0.1003 might be 1.0210x faster
div-boolean-double 5.6097+-0.0406 ?
5.6730+-0.0867 ? might be 1.0113x slower
div-boolean 8.3556+-0.1183 ?
8.4106+-0.1127 ?
double-get-by-val-out-of-bounds 4.7744+-0.0957
4.6941+-0.0830 might be 1.0171x faster
double-pollution-getbyval 9.4692+-0.2054 ?
9.5517+-0.1641 ?
double-pollution-putbyoffset 4.6523+-0.1151 ?
4.6830+-0.1230 ?
double-to-int32-typed-array-no-inline 2.5735+-0.1058 ?
2.6545+-0.0509 ? might be 1.0315x slower
double-to-int32-typed-array 2.3940+-0.2019
2.3183+-0.0655 might be 1.0326x faster
double-to-uint32-typed-array-no-inline 2.6684+-0.0374 ?
2.7152+-0.0363 ? might be 1.0175x slower
double-to-uint32-typed-array 2.3225+-0.0428 ?
2.3263+-0.0319 ?
elidable-new-object-dag 43.6554+-0.9737
42.5930+-1.2543 might be 1.0249x faster
elidable-new-object-roflcopter 43.8786+-0.5137 ?
44.1873+-1.2527 ?
elidable-new-object-then-call 36.9308+-2.3893
35.9998+-1.9452 might be 1.0259x faster
elidable-new-object-tree 44.8844+-0.9857 ?
45.4725+-2.0450 ? might be 1.0131x slower
empty-string-plus-int 5.5727+-0.0739 ?
5.6248+-0.1349 ?
emscripten-cube2hash 40.2340+-0.4935 ?
40.5459+-1.0289 ?
exit-length-on-plain-object 14.1093+-0.4957 ?
14.4658+-0.7560 ? might be 1.0253x slower
external-arguments-getbyval 1.5553+-0.0696
1.5017+-0.0561 might be 1.0357x faster
external-arguments-putbyval 2.5879+-0.0521
2.5542+-0.0553 might be 1.0132x faster
fixed-typed-array-storage-var-index 1.4799+-0.0469 ?
1.5148+-0.0774 ? might be 1.0235x slower
fixed-typed-array-storage 1.1262+-0.0417
1.1125+-0.0182 might be 1.0123x faster
Float32Array-matrix-mult 4.7526+-0.1016
4.7190+-0.0351
Float32Array-to-Float64Array-set 56.0048+-0.8556
55.7231+-1.3257
Float64Array-alloc-long-lived 69.9382+-1.1713 ?
70.4974+-1.5951 ?
Float64Array-to-Int16Array-set 73.1580+-0.8572 ^
71.4912+-0.6485 ^ definitely 1.0233x faster
fold-double-to-int 14.8043+-0.1871 ?
15.0086+-0.1709 ? might be 1.0138x slower
fold-get-by-id-to-multi-get-by-offset-rare-int
9.1685+-0.3363
9.0899+-0.2073
fold-get-by-id-to-multi-get-by-offset 7.7672+-0.1557
7.6825+-0.0732 might be 1.0110x faster
fold-multi-get-by-offset-to-get-by-offset
7.6239+-0.5655 ?
7.6497+-0.5049 ?
fold-multi-get-by-offset-to-poly-get-by-offset
7.2418+-0.4802 ?
7.8127+-0.2455 ? might be 1.0788x slower
fold-multi-put-by-offset-to-poly-put-by-offset
6.9403+-0.3709 ?
6.9843+-0.3320 ?
fold-multi-put-by-offset-to-put-by-offset
5.3389+-0.5603
5.3260+-0.5312
fold-multi-put-by-offset-to-replace-or-transition-put-by-offset
10.9369+-0.8924
10.4559+-0.7265 might be 1.0460x faster
fold-put-by-id-to-multi-put-by-offset 7.5475+-0.3878 ?
7.7815+-0.2871 ? might be 1.0310x slower
fold-put-structure 4.6709+-0.0495
4.6240+-0.0604 might be 1.0101x faster
for-of-iterate-array-entries 4.7843+-0.1067
4.7570+-0.1529
for-of-iterate-array-keys 3.8958+-0.0942 ?
3.9873+-0.1590 ? might be 1.0235x slower
for-of-iterate-array-values 3.8415+-0.0749 ?
3.9017+-0.0487 ? might be 1.0157x slower
fround 21.1878+-0.5334 ?
21.7553+-1.3380 ? might be 1.0268x slower
ftl-library-inlining-dataview 70.3019+-0.8211
69.8300+-0.7415
ftl-library-inlining 77.5988+-19.6854 ?
85.0678+-23.1938 ? might be 1.0963x slower
function-dot-apply 2.4148+-0.0495 ?
2.4810+-0.0691 ? might be 1.0274x slower
function-test 3.1029+-0.0783 ?
3.1574+-0.0692 ? might be 1.0176x slower
function-with-eval 103.3401+-1.5235
102.6449+-2.6357
gcse-poly-get-less-obvious 20.1307+-1.7468 ?
20.3417+-1.7684 ? might be 1.0105x slower
gcse-poly-get 21.5837+-1.1584 ?
24.7697+-2.7013 ? might be 1.1476x slower
gcse 4.7041+-0.1573
4.7011+-0.1272
get-by-id-bimorphic-check-structure-elimination-simple
2.9633+-0.0568 ?
3.0076+-0.0802 ? might be 1.0149x slower
get-by-id-bimorphic-check-structure-elimination
6.8177+-0.1878
6.5337+-0.1454 might be 1.0435x faster
get-by-id-chain-from-try-block 7.0081+-0.1768
6.9694+-0.1717
get-by-id-check-structure-elimination 5.6711+-0.1163
5.5732+-0.1767 might be 1.0176x faster
get-by-id-proto-or-self 19.4390+-1.1330 ?
21.1914+-2.9691 ? might be 1.0901x slower
get-by-id-quadmorphic-check-structure-elimination-simple
3.2557+-0.1244
3.2428+-0.0917
get-by-id-self-or-proto 19.2597+-0.7481 ?
20.8533+-3.1370 ? might be 1.0827x slower
get-by-val-out-of-bounds 4.7043+-0.1229
4.6262+-0.0824 might be 1.0169x faster
get_callee_monomorphic 2.9193+-0.0659 ?
3.0098+-0.1557 ? might be 1.0310x slower
get_callee_polymorphic 3.7317+-0.1835 ?
3.8743+-0.2835 ? might be 1.0382x slower
getter-no-activation 5.6031+-0.0379
5.5953+-0.0221
getter-richards 108.2904+-1.4587 ?
109.7300+-2.8638 ? might be 1.0133x slower
getter 6.1247+-0.0906 ?
6.1262+-0.0539 ?
global-var-const-infer-fire-from-opt 1.2523+-0.1528
1.2242+-0.1413 might be 1.0230x faster
global-var-const-infer 0.9907+-0.0981 ?
1.0038+-0.1079 ? might be 1.0133x slower
HashMap-put-get-iterate-keys 27.2616+-0.1343 ?
27.9943+-0.7439 ? might be 1.0269x slower
HashMap-put-get-iterate 26.9834+-0.3556 ?
27.1722+-0.1060 ?
HashMap-string-put-get-iterate 29.4722+-0.8961 ?
30.1141+-0.9752 ? might be 1.0218x slower
hoist-make-rope 11.7945+-0.8998 ?
12.2884+-1.0085 ? might be 1.0419x slower
hoist-poly-check-structure-effectful-loop
5.6108+-0.1027 ?
5.6955+-0.5088 ? might be 1.0151x slower
hoist-poly-check-structure 4.0030+-0.1261
3.9570+-0.0845 might be 1.0116x faster
imul-double-only 7.8079+-0.1907 ?
8.2066+-0.2734 ? might be 1.0511x slower
imul-int-only 9.9446+-0.4942
9.6400+-0.3481 might be 1.0316x faster
imul-mixed 8.2326+-0.5338
8.1720+-0.4412
in-four-cases 23.1034+-0.3956 ?
23.2138+-0.2842 ?
in-one-case-false 12.1019+-0.4111
12.0651+-0.1904
in-one-case-true 11.9946+-0.2936 ?
12.0406+-0.1962 ?
in-two-cases 12.7050+-0.4708 ?
12.7134+-0.2624 ?
indexed-properties-in-objects 3.1568+-0.0582 ?
3.2507+-0.0873 ? might be 1.0298x slower
infer-closure-const-then-mov-no-inline 4.5292+-0.1063 ?
4.6452+-0.0921 ? might be 1.0256x slower
infer-closure-const-then-mov 21.2727+-0.3290 ?
21.8548+-0.8981 ? might be 1.0274x slower
infer-closure-const-then-put-to-scope-no-inline
12.8341+-0.1103 ?
12.9614+-0.4795 ?
infer-closure-const-then-put-to-scope 22.5762+-0.7959 ?
23.6531+-0.9010 ? might be 1.0477x slower
infer-closure-const-then-reenter-no-inline
59.7540+-0.4505 ?
59.8718+-0.4469 ?
infer-closure-const-then-reenter 22.9551+-0.8342
22.9273+-0.7696
infer-constant-global-property 3.8060+-0.0696
3.7577+-0.0523 might be 1.0129x faster
infer-constant-property 2.9586+-0.1266 ?
3.1896+-0.4448 ? might be 1.0781x slower
infer-one-time-closure-ten-vars 12.6798+-0.1406
12.6613+-0.1562
infer-one-time-closure-two-vars 12.6129+-0.7808
12.2511+-0.2401 might be 1.0295x faster
infer-one-time-closure 12.1335+-0.1437 ?
12.1879+-0.1423 ?
infer-one-time-deep-closure 21.6786+-0.5467
21.5230+-0.3822
inline-arguments-access 4.3393+-0.1938
4.3003+-0.1277
inline-arguments-aliased-access 4.3260+-0.0999
4.2578+-0.1087 might be 1.0160x faster
inline-arguments-local-escape 4.5020+-0.2930
4.3824+-0.1228 might be 1.0273x faster
inline-get-scoped-var 5.4495+-0.0545
5.4485+-0.0571
inlined-put-by-id-transition 11.7281+-0.2337
11.6143+-0.1747
int-or-other-abs-then-get-by-val 5.4440+-0.0803 ?
5.5092+-0.0981 ? might be 1.0120x slower
int-or-other-abs-zero-then-get-by-val 18.6464+-0.2970
18.5734+-0.8064
int-or-other-add-then-get-by-val 4.7153+-0.0544 ?
4.8196+-0.1327 ? might be 1.0221x slower
int-or-other-add 5.7422+-0.1544 ?
5.8425+-0.1376 ? might be 1.0175x slower
int-or-other-div-then-get-by-val 4.6764+-0.0901
4.6379+-0.0956
int-or-other-max-then-get-by-val 4.7975+-0.1690 ?
4.8348+-0.1172 ?
int-or-other-min-then-get-by-val 4.8901+-0.1517
4.8803+-0.1715
int-or-other-mod-then-get-by-val 4.4520+-0.1712 ?
4.5366+-0.1597 ? might be 1.0190x slower
int-or-other-mul-then-get-by-val 4.2076+-0.0844 ?
4.2213+-0.1212 ?
int-or-other-neg-then-get-by-val 5.2406+-0.0519 ?
5.2487+-0.1467 ?
int-or-other-neg-zero-then-get-by-val 18.4791+-0.2448 ?
18.4967+-0.2847 ?
int-or-other-sub-then-get-by-val 4.7939+-0.1516
4.7497+-0.0544
int-or-other-sub 3.9666+-0.0402
3.9524+-0.2695
int-overflow-local 4.9384+-0.1815
4.8389+-0.1088 might be 1.0205x faster
Int16Array-alloc-long-lived 49.3133+-1.2327 ?
49.4244+-0.5724 ?
Int16Array-bubble-sort-with-byteLength 20.7950+-0.4950 ?
21.0070+-0.9020 ? might be 1.0102x slower
Int16Array-bubble-sort 20.6752+-0.2090 ^
20.0352+-0.1533 ^ definitely 1.0319x faster
Int16Array-load-int-mul 1.7755+-0.0361
1.7588+-0.0536
Int16Array-to-Int32Array-set 54.0530+-0.9502
53.3159+-0.2601 might be 1.0138x faster
Int32Array-alloc-large 21.4474+-0.5404
21.4143+-0.5769
Int32Array-alloc-long-lived 55.1489+-0.6213 ?
55.4640+-1.5163 ?
Int32Array-alloc 2.8781+-0.1410 ?
3.0127+-0.2432 ? might be 1.0467x slower
Int32Array-Int8Array-view-alloc 6.4722+-0.0572 ?
6.7074+-0.3304 ? might be 1.0363x slower
int52-spill 6.3579+-0.0648 ?
6.4058+-0.1510 ?
Int8Array-alloc-long-lived 44.6940+-0.9962
44.3044+-1.3355
Int8Array-load-with-byteLength 3.7852+-0.3575
3.6750+-0.0307 might be 1.0300x faster
Int8Array-load 3.6872+-0.0577
3.6849+-0.0864
integer-divide 12.1199+-0.3800 ?
12.2667+-0.3116 ? might be 1.0121x slower
integer-modulo 2.5320+-0.1837
2.5075+-0.1674
is-boolean-fold-tricky 4.9117+-0.1245
4.7953+-0.0863 might be 1.0243x faster
is-boolean-fold 3.0551+-0.0535 ?
3.1301+-0.0740 ? might be 1.0246x slower
is-function-fold-tricky-internal-function
12.8330+-0.2972
12.7511+-0.2780
is-function-fold-tricky 5.2293+-0.6368
4.8785+-0.0386 might be 1.0719x faster
is-function-fold 3.1090+-0.0664 ?
3.1155+-0.0552 ?
is-number-fold-tricky 4.9141+-0.1435
4.8375+-0.0697 might be 1.0158x faster
is-number-fold 3.1316+-0.0764 ?
3.1570+-0.0796 ?
is-object-or-null-fold-functions 3.1534+-0.1006 ?
3.2102+-0.0862 ? might be 1.0180x slower
is-object-or-null-fold-less-tricky 5.0657+-0.1046 ^
4.8191+-0.0544 ^ definitely 1.0512x faster
is-object-or-null-fold-tricky 7.1770+-0.2065 ?
7.1801+-0.1412 ?
is-object-or-null-fold 3.1257+-0.0790
3.1130+-0.0846
is-object-or-null-trickier-function 5.1281+-0.1538
4.9630+-0.0817 might be 1.0333x faster
is-object-or-null-trickier-internal-function
13.5082+-0.1603
13.3831+-0.1452
is-object-or-null-tricky-function 5.0752+-0.2140 ?
5.1529+-0.3611 ? might be 1.0153x slower
is-object-or-null-tricky-internal-function
10.1974+-0.3080 ^
9.7996+-0.0580 ^ definitely 1.0406x faster
is-string-fold-tricky 4.8964+-0.0831 ?
4.9560+-0.2010 ? might be 1.0122x slower
is-string-fold 3.0518+-0.0698 ?
3.1127+-0.1158 ? might be 1.0199x slower
is-undefined-fold-tricky 3.9450+-0.0660 ?
4.0682+-0.1057 ? might be 1.0312x slower
is-undefined-fold 3.1158+-0.0644
3.0872+-0.0670
large-int-captured 4.7336+-0.2319 ?
4.8638+-0.1926 ? might be 1.0275x slower
large-int-neg 17.2000+-0.5194
17.1093+-0.3734
large-int 15.6413+-0.3055 ?
16.0004+-0.4375 ? might be 1.0230x slower
load-varargs-elimination 25.9607+-0.3349 ?
26.5315+-0.8365 ? might be 1.0220x slower
logical-not 5.0847+-0.0788 ?
5.1389+-0.1116 ? might be 1.0107x slower
lots-of-fields 13.4226+-0.5618 ?
14.2407+-0.3583 ? might be 1.0610x slower
make-indexed-storage 3.2358+-0.3031 ?
3.2464+-0.3862 ?
make-rope-cse 4.0562+-0.1923
3.9864+-0.1428 might be 1.0175x faster
marsaglia-larger-ints 42.4079+-0.7219
41.6765+-0.7135 might be 1.0176x faster
marsaglia-osr-entry 23.7762+-0.5942 ?
23.8015+-1.0261 ?
max-boolean 2.6930+-0.0446 ?
2.7087+-0.0735 ?
method-on-number 18.9564+-0.3880 ^
17.7610+-0.3114 ^ definitely 1.0673x faster
min-boolean 2.7662+-0.0817
2.7167+-0.0743 might be 1.0182x faster
minus-boolean-double 3.3923+-0.0215 ?
3.4561+-0.0655 ? might be 1.0188x slower
minus-boolean 2.5516+-0.0311 ?
2.6183+-0.1253 ? might be 1.0262x slower
misc-strict-eq 40.5641+-0.4491 ?
40.9549+-0.7357 ?
mod-boolean-double 11.6232+-0.1537 ?
11.7470+-0.2982 ? might be 1.0107x slower
mod-boolean 8.5114+-0.1821 ?
8.5485+-0.2753 ?
mul-boolean-double 4.1385+-0.2486
4.0344+-0.1168 might be 1.0258x faster
mul-boolean 3.1416+-0.1081
3.1358+-0.0280
neg-boolean 3.4116+-0.1012 ?
3.4210+-0.0538 ?
negative-zero-divide 0.4670+-0.0244
0.4640+-0.0229
negative-zero-modulo 0.4505+-0.0256 ?
0.4829+-0.0945 ? might be 1.0719x slower
negative-zero-negate 0.4352+-0.0143
0.4221+-0.0298 might be 1.0310x faster
nested-function-parsing 38.9521+-0.5677 ?
40.6336+-2.9389 ? might be 1.0432x slower
new-array-buffer-dead 104.2596+-0.7854
103.8648+-0.2802
new-array-buffer-push 6.7837+-0.5438
6.6443+-0.3746 might be 1.0210x faster
new-array-dead 19.4286+-0.6951 ?
19.5995+-0.3695 ?
new-array-push 3.9730+-0.1461 ?
4.1221+-0.1797 ? might be 1.0375x slower
no-inline-constructor 39.7671+-0.6818
39.4660+-1.3021
number-test 3.3147+-0.0728 ?
3.3419+-0.0838 ?
object-closure-call 6.0239+-0.2645 ?
6.1760+-0.2121 ? might be 1.0253x slower
object-test 3.0926+-0.0803 ?
3.2063+-0.1516 ? might be 1.0368x slower
obvious-sink-pathology-taken 126.7196+-2.1278 ?
127.0551+-1.4851 ?
obvious-sink-pathology 119.8670+-1.0109 ?
119.9386+-0.6034 ?
obviously-elidable-new-object 35.8866+-0.5515
35.1518+-0.6442 might be 1.0209x faster
plus-boolean-arith 2.7503+-0.0981 ?
2.7868+-0.1249 ? might be 1.0133x slower
plus-boolean-double 3.5451+-0.1921
3.4444+-0.0796 might be 1.0292x faster
plus-boolean 2.5769+-0.0301 ?
2.6285+-0.0777 ? might be 1.0201x slower
poly-chain-access-different-prototypes-simple
3.6388+-0.1220
3.5918+-0.0777 might be 1.0131x faster
poly-chain-access-different-prototypes 2.8038+-0.0861 ?
2.9341+-0.1723 ? might be 1.0465x slower
poly-chain-access-simpler 3.5669+-0.1514
3.5146+-0.0328 might be 1.0149x faster
poly-chain-access 2.8373+-0.0387 ?
2.8981+-0.0758 ? might be 1.0214x slower
poly-stricteq 60.8954+-0.7019 ?
62.4316+-2.1167 ? might be 1.0252x slower
polymorphic-array-call 1.6663+-0.0443 ?
1.6682+-0.0855 ?
polymorphic-get-by-id 3.4983+-0.4571
3.3947+-0.1169 might be 1.0305x faster
polymorphic-put-by-id 32.5243+-1.3978 ?
35.2653+-1.3828 ? might be 1.0843x slower
polymorphic-structure 15.8225+-0.3630 ?
15.8833+-0.2586 ?
polyvariant-monomorphic-get-by-id 9.3790+-0.1685
9.3152+-0.1704
proto-getter-access 9.8065+-0.2285
9.7849+-0.2237
put-by-id-replace-and-transition 9.7684+-0.3647
9.4053+-0.1543 might be 1.0386x faster
put-by-id-slightly-polymorphic 3.0419+-0.0405 ?
3.1223+-0.0928 ? might be 1.0264x slower
put-by-id 13.3006+-0.4399 ?
13.3219+-0.5095 ?
put-by-val-direct 0.4459+-0.0308 ?
0.4511+-0.0259 ? might be 1.0117x slower
put-by-val-large-index-blank-indexing-type
5.7921+-0.2062
5.7319+-0.1030 might be 1.0105x faster
put-by-val-machine-int 2.8475+-0.0846
2.7999+-0.1243 might be 1.0170x faster
rare-osr-exit-on-local 15.8760+-0.1656 ?
15.9131+-0.2009 ?
register-pressure-from-osr 22.8750+-0.3007 ?
23.1867+-0.4980 ? might be 1.0136x slower
setter 6.2863+-0.0495 !
6.4484+-0.1024 ! definitely 1.0258x slower
simple-activation-demo 26.7964+-0.3014 ?
27.0772+-0.4553 ? might be 1.0105x slower
simple-getter-access 12.5871+-0.3964
12.4681+-0.1912
simple-poly-call-nested 9.2483+-0.1166
9.2277+-0.0368
simple-poly-call 1.6133+-0.0237
1.5958+-0.0270 might be 1.0110x faster
sin-boolean 20.4530+-1.0942 ?
22.1926+-3.1111 ? might be 1.0851x slower
singleton-scope 65.9832+-1.0132 ?
66.1077+-0.6935 ?
sink-function 11.9629+-0.8669 ?
12.5684+-0.4330 ? might be 1.0506x slower
sink-huge-activation 19.8704+-0.9147
19.5890+-1.2236 might be 1.0144x faster
sinkable-new-object-dag 70.6824+-1.7638 ?
71.4422+-1.9753 ? might be 1.0107x slower
sinkable-new-object-taken 53.1531+-1.9906 ?
53.3200+-2.2725 ?
sinkable-new-object 39.6399+-1.0269
38.6961+-0.6519 might be 1.0244x faster
slow-array-profile-convergence 3.1747+-0.1572 ?
3.2240+-0.1682 ? might be 1.0155x slower
slow-convergence 3.1019+-0.1669 ?
3.1609+-0.1814 ? might be 1.0190x slower
slow-ternaries 19.7077+-0.2526
19.5313+-0.4564
sorting-benchmark 20.6677+-0.2503 ?
20.6979+-0.1902 ?
sparse-conditional 1.4180+-0.0408 ?
1.4394+-0.0498 ? might be 1.0151x slower
splice-to-remove 17.1901+-0.2324 ?
18.4045+-3.2279 ? might be 1.0706x slower
string-char-code-at 16.7569+-0.1786 ?
16.7877+-0.5414 ?
string-concat-object 2.3337+-0.0466 ?
2.3400+-0.0688 ?
string-concat-pair-object 2.4023+-0.1699
2.3085+-0.0624 might be 1.0406x faster
string-concat-pair-simple 12.5841+-0.5340
12.1740+-0.2867 might be 1.0337x faster
string-concat-simple 12.6101+-0.2765
12.5390+-0.2772
string-cons-repeat 7.7805+-0.3077 ?
8.0732+-0.3411 ? might be 1.0376x slower
string-cons-tower 7.9575+-0.2224
7.7713+-0.1092 might be 1.0240x faster
string-equality 19.8631+-0.3107 ?
20.0490+-0.2696 ?
string-get-by-val-big-char 7.6909+-0.3657
7.4323+-0.1183 might be 1.0348x faster
string-get-by-val-out-of-bounds-insane 3.8356+-0.0885 ?
3.8972+-0.2041 ? might be 1.0161x slower
string-get-by-val-out-of-bounds 5.9840+-0.4640
5.6484+-0.1626 might be 1.0594x faster
string-get-by-val 3.6405+-0.1466 ?
3.7180+-0.1146 ? might be 1.0213x slower
string-hash 2.3118+-0.0614 ?
2.3334+-0.0353 ?
string-long-ident-equality 16.4626+-0.2904 ?
16.5360+-0.3868 ?
string-out-of-bounds 15.6328+-0.3761
15.4018+-0.3491 might be 1.0150x faster
string-repeat-arith 33.1757+-0.7956 ?
34.0533+-0.6198 ? might be 1.0265x slower
string-sub 65.3438+-0.6901 ?
65.8079+-1.5648 ?
string-test 3.1859+-0.0774 ?
3.2418+-0.0828 ? might be 1.0175x slower
string-var-equality 34.6545+-0.8156
34.4651+-0.3960
structure-hoist-over-transitions 2.8162+-0.1323 ?
2.9274+-0.1836 ? might be 1.0395x slower
substring-concat-weird 41.2317+-0.4039
41.1480+-0.8042
substring-concat 44.8405+-1.0342 ?
45.3848+-2.4343 ? might be 1.0121x slower
substring 47.6974+-0.8224 ?
47.7990+-0.9109 ?
switch-char-constant 3.0441+-0.1023
2.9958+-0.0630 might be 1.0161x faster
switch-char 7.0216+-0.0626 ?
7.0327+-0.0729 ?
switch-constant 9.1169+-0.5631
8.9387+-0.4020 might be 1.0199x faster
switch-string-basic-big-var 19.7640+-0.3005 ?
20.0629+-0.5830 ? might be 1.0151x slower
switch-string-basic-big 18.3227+-0.2168
18.2107+-0.4909
switch-string-basic-var 16.2028+-0.2460 ?
16.2767+-0.4939 ?
switch-string-basic 14.9866+-0.1612 ?
15.1241+-0.3167 ?
switch-string-big-length-tower-var 21.5937+-0.3433
21.3844+-0.4933
switch-string-length-tower-var 16.3407+-0.3172 ?
16.3463+-0.2422 ?
switch-string-length-tower 13.5852+-0.2258
13.5474+-0.1919
switch-string-short 13.4849+-0.1006 ?
13.7425+-0.1903 ? might be 1.0191x slower
switch 13.0993+-0.1857 ?
13.6191+-0.9115 ? might be 1.0397x slower
tear-off-arguments-simple 3.6073+-0.1743
3.5605+-0.0808 might be 1.0131x faster
tear-off-arguments 5.1315+-0.3473
4.8976+-0.1126 might be 1.0478x faster
temporal-structure 13.4235+-0.3409
13.1538+-0.2967 might be 1.0205x faster
to-int32-boolean 14.4664+-0.2685 ?
14.5079+-0.1679 ?
try-catch-get-by-val-cloned-arguments 15.1547+-1.7034
14.5126+-0.7952 might be 1.0442x faster
try-catch-get-by-val-direct-arguments 6.4940+-0.3047 ?
6.7853+-0.5353 ? might be 1.0449x slower
try-catch-get-by-val-scoped-arguments 7.4242+-0.0904 ?
7.5139+-0.2845 ? might be 1.0121x slower
typed-array-get-set-by-val-profiling 36.4769+-0.4708 ?
37.3499+-2.3278 ? might be 1.0239x slower
undefined-property-access 361.3414+-8.8594
357.5765+-0.5500 might be 1.0105x faster
undefined-test 3.2733+-0.0784 ?
3.4623+-0.1198 ? might be 1.0577x slower
unprofiled-licm 23.2414+-0.2495
22.9490+-0.3642 might be 1.0127x faster
varargs-call 16.0055+-0.1355 ?
16.0098+-0.3686 ?
varargs-construct-inline 28.5296+-0.9216
27.8645+-0.8314 might be 1.0239x faster
varargs-construct 24.0386+-0.3610 ?
24.1823+-0.4964 ?
varargs-inline 9.7306+-0.2039
9.7095+-0.1837
varargs-strict-mode 10.7086+-0.1850 ?
10.9770+-0.4073 ? might be 1.0251x slower
varargs 10.8767+-0.2900 ?
10.9339+-0.3295 ?
weird-inlining-const-prop 2.5784+-0.1479 ?
2.5962+-0.1706 ?
<geometric> 8.8942+-0.0125 !
8.9268+-0.0154 ! definitely 1.0037x slower
r184563
LazyNode
AsmBench:
bigfib.cpp 530.4476+-3.4576 ?
531.8476+-1.4115 ?
cray.c 454.8730+-3.2171 ?
467.6731+-19.5239 ? might be 1.0281x slower
dry.c 515.0510+-14.3997
511.9144+-18.9592
FloatMM.c 753.5271+-1.1324 ?
754.4245+-4.4353 ?
gcc-loops.cpp 4396.5297+-11.4400 !
4421.1068+-10.9712 ! definitely 1.0056x slower
n-body.c 1033.6262+-1.6029 ?
1037.2446+-7.2954 ?
Quicksort.c 445.2131+-8.6740
444.7903+-1.7022
stepanov_container.cpp 3972.4623+-5.5964 ?
3987.7805+-16.7840 ?
Towers.c 270.2157+-2.9628
269.1699+-1.8659
<geometric> 837.7626+-3.2470 ?
840.8484+-7.4656 ? might be 1.0037x slower
r184563
LazyNode
CompressionBench:
huffman 381.7283+-1.1493 !
391.5232+-2.1948 ! definitely 1.0257x slower
arithmetic-simple 382.1947+-0.6520 ?
382.8132+-1.1796 ?
arithmetic-precise 306.7580+-3.1386 ?
307.4093+-3.7184 ?
arithmetic-complex-precise 316.5529+-2.6948
315.8540+-2.3852
arithmetic-precise-order-0 402.3017+-5.4393
399.2545+-3.9375
arithmetic-precise-order-1 345.3787+-6.6243
343.1055+-1.9818
arithmetic-precise-order-2 394.0601+-12.7991
390.4156+-2.0276
arithmetic-simple-order-1 442.2996+-2.1746 ?
442.6624+-2.8598 ?
arithmetic-simple-order-2 494.0874+-1.9415 ?
499.6559+-6.9788 ? might be 1.0113x slower
lz-string 321.8915+-1.9238 ?
325.0507+-5.2580 ?
<geometric> 374.6833+-1.4244 ?
375.6390+-0.7370 ? might be 1.0026x slower
r184563
LazyNode
Geomean of preferred means:
<scaled-result> 64.4790+-0.1366 !
64.7893+-0.1069 ! definitely 1.0048x slower
More information about the webkit-reviews
mailing list