Summary: | FTL should be able to do polymorphic call inlining | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Filip Pizlo <fpizlo> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Component: | JavaScriptCore | Assignee: | Filip Pizlo <fpizlo> | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Status: | RESOLVED FIXED | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Severity: | Normal | CC: | barraclough, benjamin, buildbot, bunhere, cmarcelo, commit-queue, ggaren, gyuyoung.kim, mark.lam, mhahnenberg, mmirman, msaboff, nrotem, oliver, rakuco, rniwa, sam, sergio | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Priority: | P2 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Version: | 528+ (Nightly build) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Hardware: | All | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
OS: | All | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bug Depends on: | 135146, 136256 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Bug Blocks: | 136020, 136033 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Attachments: |
|
Description
Filip Pizlo
2014-07-21 20:20:44 PDT
Created attachment 235586 [details]
work in progress
Created attachment 235733 [details]
more
I might change this to a different approach. It feels like the CallEdgeProfile should actually be embedded in CallLinkInfo.
Created attachment 236172 [details]
better
Still more work to do
Created attachment 236230 [details]
more
Created attachment 236393 [details]
a bit more
Created attachment 236718 [details]
it's coming together
Created attachment 236721 [details]
getting there
Now I need to do the ByteCodeParser hacks that create the switch on callee. Then I need to trickle the CheckCell/GetExecutable/CheckBadCell changes through the DFG.
Created attachment 236724 [details]
very close
Wrote most of the bytecode parser hacks.
Created attachment 236725 [details]
parser hacks done
The bytecode parser now has all of the requisite hacks, I think.
Created attachment 236730 [details]
more
Created attachment 236738 [details]
even more
Created attachment 236739 [details]
it compiles!
Clearly that means that I must almost be done.
Created attachment 236796 [details]
doesn't work yet
The profiling needs some love.
Created attachment 236852 [details]
getting closer
Created attachment 236884 [details]
starting to pass tests
Created attachment 236909 [details]
passing more tests than ever!
Still pretty badly broken, though.
Created attachment 236938 [details]
passing tests
I think that this version is passing all 64-bit tests.
Created attachment 236959 [details] it works but needs some more love It's a speed-up on deltablue but a slow-down on lots of other things, probably because the current call edge profiling is just too expensive. I'll work on speeding it up. Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, and AsmBench on oldmac (MacPro4,1). VMs tested: "TipOfTree" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r172835) "PolyInline" at /Volumes/Data/fromMiniMe/primary/OpenSource/WebKitBuild/Release/jsc (r172835) 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. TipOfTree PolyInline SunSpider: 3d-cube 7.5946+-0.2153 ? 8.0443+-0.2443 ? might be 1.0592x slower 3d-morph 9.6110+-0.1630 ? 9.6455+-0.1662 ? 3d-raytrace 9.7065+-0.1233 ? 9.8396+-0.1460 ? might be 1.0137x slower access-binary-trees 2.8809+-0.0777 ? 2.9406+-0.0872 ? might be 1.0207x slower access-fannkuch 9.1764+-0.1227 ? 9.3502+-0.2241 ? might be 1.0189x slower access-nbody 4.6783+-0.0490 ? 4.6904+-0.0220 ? access-nsieve 5.7740+-0.1203 ? 5.8987+-0.0769 ? might be 1.0216x slower bitops-3bit-bits-in-byte 1.8617+-0.0317 ? 1.9032+-0.0238 ? might be 1.0223x slower bitops-bits-in-byte 6.7890+-0.1195 ? 6.8812+-0.0978 ? might be 1.0136x slower bitops-bitwise-and 3.1610+-0.0377 ? 3.1814+-0.0086 ? bitops-nsieve-bits 5.6544+-0.0241 ? 5.6804+-0.0188 ? controlflow-recursive 2.9051+-0.0727 ! 3.2190+-0.1105 ! definitely 1.1081x slower crypto-aes 6.2924+-0.0738 ? 6.4142+-0.0746 ? might be 1.0194x slower crypto-md5 3.6888+-0.0626 ? 3.6998+-0.1055 ? crypto-sha1 3.7182+-0.0965 ! 4.4001+-0.1380 ! definitely 1.1834x slower date-format-tofte 13.1222+-0.0693 ! 13.5642+-0.3367 ! definitely 1.0337x slower date-format-xparb 8.6792+-0.1452 ! 9.0055+-0.1027 ! definitely 1.0376x slower math-cordic 4.6585+-0.0605 ! 4.8008+-0.0705 ! definitely 1.0305x slower math-partial-sums 10.4178+-0.1828 ? 10.4766+-0.1536 ? math-spectral-norm 3.0549+-0.0615 ? 3.0768+-0.0107 ? regexp-dna 11.8511+-0.1547 11.6842+-0.1506 might be 1.0143x faster string-base64 6.3891+-0.1283 ! 6.6825+-0.0560 ! definitely 1.0459x slower string-fasta 10.3838+-0.2348 ? 10.4120+-0.1427 ? string-tagcloud 15.3205+-0.1762 ? 15.5042+-0.2090 ? might be 1.0120x slower string-unpack-code 30.6919+-0.2215 ! 31.5972+-0.1779 ! definitely 1.0295x slower string-validate-input 7.7859+-0.0451 ! 7.9743+-0.1431 ! definitely 1.0242x slower <arithmetic> * 7.9172+-0.0145 ! 8.0987+-0.0305 ! definitely 1.0229x slower <geometric> 6.5040+-0.0174 ! 6.6785+-0.0204 ! definitely 1.0268x slower <harmonic> 5.4204+-0.0246 ! 5.5887+-0.0232 ! definitely 1.0311x slower TipOfTree PolyInline LongSpider: 3d-cube 1352.0654+-7.5681 1351.0275+-6.7999 3d-morph 2272.6241+-2.0340 ? 2275.0402+-7.0950 ? 3d-raytrace 1482.4245+-419.2106 1335.0356+-16.8111 might be 1.1104x faster access-binary-trees 1675.1018+-8.6648 ? 1675.2926+-7.5717 ? access-fannkuch 526.0796+-14.9734 516.7568+-14.9238 might be 1.0180x faster access-nbody 1248.8571+-6.1241 ^ 1238.8468+-1.2545 ^ definitely 1.0081x faster access-nsieve 1609.9677+-2.6668 ? 1613.6973+-10.8114 ? bitops-3bit-bits-in-byte 56.3809+-0.3532 ? 56.4364+-0.5069 ? bitops-bits-in-byte 394.6253+-3.5777 392.5570+-4.3569 bitops-nsieve-bits 1178.5810+-3.9830 ? 1181.9095+-4.6539 ? controlflow-recursive 866.1628+-1.8765 ! 876.0103+-1.0721 ! definitely 1.0114x slower crypto-aes 1134.4246+-6.2766 ? 1134.8290+-4.9674 ? crypto-md5 956.3330+-5.2402 ! 983.1053+-4.8350 ! definitely 1.0280x slower crypto-sha1 1196.8633+-4.2312 ! 1220.6004+-2.9407 ! definitely 1.0198x slower date-format-tofte 1197.9165+-21.7163 1186.0440+-30.1110 might be 1.0100x faster date-format-xparb 1364.5377+-158.9320 1345.7737+-19.7882 might be 1.0139x faster math-cordic 812.0073+-1.8270 809.1755+-1.0567 math-partial-sums 1315.1551+-3.1678 ? 1327.4985+-20.3672 ? math-spectral-norm 1297.2487+-1.3593 ? 1299.1891+-7.3236 ? string-base64 593.9134+-11.3291 ! 609.7895+-1.2048 ! definitely 1.0267x slower string-fasta 706.3265+-8.3551 ! 724.1660+-3.0820 ! definitely 1.0253x slower string-tagcloud 361.5202+-2.4758 ? 363.9523+-3.2177 ? <arithmetic> 1072.6871+-25.7723 1068.9424+-2.8234 might be 1.0035x faster <geometric> * 891.2936+-13.3211 891.2051+-2.3769 might be 1.0001x faster <harmonic> 536.0106+-3.2548 ? 536.8952+-1.2105 ? might be 1.0017x slower TipOfTree PolyInline V8Spider: crypto 80.9008+-0.5207 ? 81.4185+-1.0465 ? deltablue 99.1384+-0.9682 ! 121.0133+-1.6391 ! definitely 1.2207x slower earley-boyer 73.8010+-1.6163 ! 76.3885+-0.7901 ! definitely 1.0351x slower raytrace 44.1356+-0.9037 ! 50.0779+-0.5829 ! definitely 1.1346x slower regexp 103.6033+-0.3017 ! 105.4350+-0.4881 ! definitely 1.0177x slower richards 107.5065+-1.0195 ! 117.8313+-1.0731 ! definitely 1.0960x slower splay 49.8695+-0.2632 ? 50.8301+-1.8020 ? might be 1.0193x slower <arithmetic> 79.8507+-0.1704 ! 86.1421+-0.5408 ! definitely 1.0788x slower <geometric> * 75.8954+-0.2279 ! 81.4524+-0.5156 ! definitely 1.0732x slower <harmonic> 71.6666+-0.3093 ! 76.6950+-0.5800 ! definitely 1.0702x slower TipOfTree PolyInline Octane: encrypt 0.39473+-0.00039 ! 0.40192+-0.00215 ! definitely 1.0182x slower decrypt 7.25790+-0.18546 ? 7.35649+-0.02711 ? might be 1.0136x slower deltablue x2 0.44000+-0.00558 ^ 0.34110+-0.00174 ^ definitely 1.2900x faster earley 1.34546+-0.01173 ? 1.35393+-0.01131 ? boyer 10.42331+-0.09680 ? 10.43746+-0.04220 ? navier-stokes x2 7.73531+-0.00552 7.71280+-0.05381 raytrace x2 2.66749+-0.02389 2.64685+-0.02644 richards x2 0.22155+-0.00319 0.21780+-0.00325 might be 1.0172x faster splay x2 0.62699+-0.00634 0.62681+-0.00482 regexp x2 61.84485+-1.77403 ? 62.16311+-0.54360 ? pdfjs x2 86.33682+-0.20069 ! 89.37293+-1.01204 ! definitely 1.0352x slower mandreel x2 91.88538+-0.34420 ^ 89.60177+-1.26779 ^ definitely 1.0255x faster gbemu x2 68.24726+-0.31933 ! 104.55190+-0.44065 ! definitely 1.5320x slower closure 0.90719+-0.00111 ! 0.91345+-0.00219 ! definitely 1.0069x slower jquery 11.42860+-0.02258 ^ 11.25698+-0.01161 ^ definitely 1.0152x faster box2d x2 24.63824+-0.13182 ! 24.99385+-0.14292 ! definitely 1.0144x slower zlib x2 815.33431+-4.22733 ? 815.81070+-6.35226 ? typescript x2 1280.47925+-7.08743 ! 1340.11747+-7.41310 ! definitely 1.0466x slower <arithmetic> 163.75574+-0.58948 ! 170.26781+-0.42883 ! definitely 1.0398x slower <geometric> * 12.29412+-0.02072 ! 12.48793+-0.03242 ! definitely 1.0158x slower <harmonic> 1.32366+-0.00845 ^ 1.24611+-0.00896 ^ definitely 1.0622x faster TipOfTree PolyInline Kraken: ai-astar 528.577+-1.711 ? 529.073+-0.626 ? audio-beat-detection 182.384+-0.601 182.185+-4.016 audio-dft 253.074+-1.250 ? 253.463+-1.209 ? audio-fft 130.191+-0.345 130.075+-0.787 audio-oscillator 366.593+-0.933 ^ 361.922+-1.114 ^ definitely 1.0129x faster imaging-darkroom 289.547+-7.152 289.346+-1.124 imaging-desaturate 113.049+-1.956 112.132+-0.471 imaging-gaussian-blur 178.874+-0.560 ? 179.066+-0.380 ? json-parse-financial 82.244+-0.379 ? 82.863+-0.300 ? json-stringify-tinderbox 105.377+-0.624 ? 108.018+-2.791 ? might be 1.0251x slower stanford-crypto-aes 101.463+-1.313 ? 102.880+-1.196 ? might be 1.0140x slower stanford-crypto-ccm 92.447+-11.665 ? 97.330+-9.769 ? might be 1.0528x slower stanford-crypto-pbkdf2 274.545+-2.446 ! 277.732+-0.634 ! definitely 1.0116x slower stanford-crypto-sha256-iterative 107.451+-0.797 ? 108.552+-0.507 ? might be 1.0103x slower <arithmetic> * 200.415+-1.045 ? 201.046+-0.742 ? might be 1.0031x slower <geometric> 169.567+-1.569 ? 170.797+-1.140 ? might be 1.0073x slower <harmonic> 147.330+-2.101 ? 149.010+-1.481 ? might be 1.0114x slower TipOfTree PolyInline JSRegress: abs-boolean 4.1798+-0.0135 ! 4.2309+-0.0026 ! definitely 1.0122x slower adapt-to-double-divide 20.0364+-0.3317 ? 20.3616+-0.5457 ? might be 1.0162x slower aliased-arguments-getbyval 1.0923+-0.0092 ! 1.1754+-0.0285 ! definitely 1.0761x slower allocate-big-object 3.5848+-0.0255 ? 3.7871+-0.2078 ? might be 1.0564x slower arity-mismatch-inlining 1.0146+-0.0060 ? 1.0483+-0.0533 ? might be 1.0332x slower array-access-polymorphic-structure 10.9338+-0.1994 10.8200+-0.2224 might be 1.0105x faster array-nonarray-polymorhpic-access 60.8348+-0.2101 ? 60.8615+-0.2560 ? array-prototype-every 125.0113+-2.8715 ? 126.2563+-2.8309 ? array-prototype-forEach 124.3809+-1.8162 123.6824+-2.6998 array-prototype-map 147.8374+-0.3035 ? 149.5013+-3.5347 ? might be 1.0113x slower array-prototype-some 124.4661+-3.5184 123.6065+-2.3767 array-splice-contiguous 69.4052+-1.9175 ! 74.2858+-0.7240 ! definitely 1.0703x slower array-with-double-add 6.5933+-0.1489 ? 6.6831+-0.1740 ? might be 1.0136x slower array-with-double-increment 4.6936+-0.0684 ? 4.7790+-0.0998 ? might be 1.0182x slower array-with-double-mul-add 7.9657+-0.2380 ? 8.0192+-0.1954 ? array-with-double-sum 4.9562+-0.0176 ? 5.0314+-0.0808 ? might be 1.0152x slower array-with-int32-add-sub 11.9687+-0.3082 11.9197+-0.2233 array-with-int32-or-double-sum 5.1092+-0.0658 5.1050+-0.0832 ArrayBuffer-DataView-alloc-large-long-lived 114.1682+-1.0872 ? 115.5278+-1.4361 ? might be 1.0119x slower ArrayBuffer-DataView-alloc-long-lived 32.3613+-0.5549 ? 33.5216+-1.8139 ? might be 1.0359x slower ArrayBuffer-Int32Array-byteOffset 5.2577+-0.0118 ? 5.3598+-0.2003 ? might be 1.0194x slower ArrayBuffer-Int8Array-alloc-large-long-lived 120.5495+-1.4132 ? 120.8168+-1.7281 ? ArrayBuffer-Int8Array-alloc-long-lived-buffer 51.0945+-0.3967 ? 51.2767+-0.5661 ? ArrayBuffer-Int8Array-alloc-long-lived 31.1080+-0.3951 ? 31.6860+-0.5979 ? might be 1.0186x slower ArrayBuffer-Int8Array-alloc 27.6877+-0.1137 ! 28.1193+-0.3158 ! definitely 1.0156x slower asmjs_bool_bug 10.2304+-0.0970 10.2031+-0.2022 assign-custom-setter-polymorphic 4.8608+-0.1087 ? 4.8993+-0.0160 ? assign-custom-setter 6.6747+-0.0444 ? 6.7273+-0.1297 ? basic-set 15.1954+-0.1069 ! 16.1310+-0.2591 ! definitely 1.0616x slower big-int-mul 6.3088+-0.0877 ! 6.8925+-0.1580 ! definitely 1.0925x slower boolean-test 4.7846+-0.0503 ? 4.8570+-0.0863 ? might be 1.0151x slower branch-fold 5.1597+-0.0379 5.1018+-0.0625 might be 1.0113x faster by-val-generic 12.8818+-0.2397 ? 12.9330+-0.3659 ? call-spread-apply 20.1300+-0.2423 ! 20.8793+-0.4502 ! definitely 1.0372x slower call-spread-call 8.7924+-0.2655 8.7643+-0.2203 captured-assignments 0.5822+-0.0046 ? 0.5878+-0.0028 ? cast-int-to-double 9.4331+-0.1119 ? 9.4803+-0.0435 ? cell-argument 11.0470+-0.1002 ? 11.0909+-0.1342 ? cfg-simplify 4.0564+-0.0137 ? 4.0705+-0.0088 ? chain-getter-access 13.6212+-0.1913 ? 13.6705+-0.2572 ? cmpeq-obj-to-obj-other 13.7810+-0.7287 13.4700+-0.4301 might be 1.0231x faster constant-test 8.8676+-0.1166 8.8178+-0.1558 DataView-custom-properties 123.7233+-2.4634 123.5355+-1.2153 delay-tear-off-arguments-strictmode 3.6439+-0.0468 ! 3.8051+-0.0125 ! definitely 1.0442x slower destructuring-arguments 8.9250+-0.1094 ? 9.0672+-0.1029 ? might be 1.0159x slower destructuring-swap 8.8669+-0.0750 ? 9.0399+-0.1544 ? might be 1.0195x slower direct-arguments-getbyval 1.1095+-0.0141 ! 1.1503+-0.0065 ! definitely 1.0368x slower div-boolean-double 6.4487+-0.0986 6.4284+-0.0890 div-boolean 11.5881+-0.0463 ? 11.6834+-0.2151 ? double-get-by-val-out-of-bounds 6.6634+-0.2158 ? 6.6743+-0.1509 ? double-pollution-getbyval 11.5010+-0.2670 11.3490+-0.1865 might be 1.0134x faster double-pollution-putbyoffset 6.0839+-0.0978 ? 6.3060+-0.1848 ? might be 1.0365x slower double-to-int32-typed-array-no-inline 3.0007+-0.0810 ! 3.1621+-0.0693 ! definitely 1.0538x slower double-to-int32-typed-array 2.4732+-0.0740 ! 2.6660+-0.0118 ! definitely 1.0780x slower double-to-uint32-typed-array-no-inline 3.0660+-0.0798 ! 3.3189+-0.1039 ! definitely 1.0825x slower double-to-uint32-typed-array 2.6402+-0.0168 ! 2.9238+-0.1564 ! definitely 1.1074x slower empty-string-plus-int 10.2048+-0.0524 ! 10.6624+-0.0834 ! definitely 1.0448x slower emscripten-cube2hash 53.9678+-0.5620 ! 56.3429+-0.7328 ! definitely 1.0440x slower external-arguments-getbyval 2.0516+-0.0581 ? 2.0564+-0.0390 ? external-arguments-putbyval 3.0253+-0.0274 ? 3.0415+-0.0633 ? fixed-typed-array-storage-var-index 1.5136+-0.0089 ! 1.5520+-0.0064 ! definitely 1.0254x slower fixed-typed-array-storage 1.0881+-0.0170 ! 1.1221+-0.0069 ! definitely 1.0313x slower Float32Array-matrix-mult 7.4202+-0.0654 ? 7.5373+-0.0763 ? might be 1.0158x slower Float32Array-to-Float64Array-set 89.3601+-1.3919 ? 89.9368+-2.4640 ? Float64Array-alloc-long-lived 101.4559+-0.8011 ? 102.5010+-1.3636 ? might be 1.0103x slower Float64Array-to-Int16Array-set 116.0963+-1.0856 ? 117.4165+-0.9402 ? might be 1.0114x slower fold-double-to-int 21.0352+-0.4788 20.9757+-0.3006 fold-get-by-id-to-multi-get-by-offset-rare-int 19.1632+-0.5897 ! 24.5675+-0.1908 ! definitely 1.2820x slower fold-get-by-id-to-multi-get-by-offset 18.1233+-0.4736 ! 23.3914+-0.2243 ! definitely 1.2907x slower fold-multi-get-by-offset-to-get-by-offset 13.0308+-0.1101 ! 18.7021+-0.2265 ! definitely 1.4352x slower fold-multi-get-by-offset-to-poly-get-by-offset 13.0759+-0.1500 ! 18.6002+-0.1286 ! definitely 1.4225x slower fold-multi-put-by-offset-to-poly-put-by-offset 13.3411+-0.2635 ! 19.3851+-0.1469 ! definitely 1.4530x slower fold-multi-put-by-offset-to-put-by-offset 12.3863+-0.1176 ! 17.7356+-0.3558 ! definitely 1.4319x slower fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 17.6198+-0.5932 ! 23.5616+-0.3152 ! definitely 1.3372x slower fold-put-by-id-to-multi-put-by-offset 20.5715+-0.1061 ! 26.2419+-0.4765 ! definitely 1.2756x slower fold-put-structure 12.7581+-0.1803 ! 17.8292+-0.1089 ! definitely 1.3975x slower for-of-iterate-array-entries 9.3297+-0.1522 9.0857+-0.1606 might be 1.0269x faster for-of-iterate-array-keys 3.6383+-0.1252 ! 4.1842+-0.0953 ! definitely 1.1500x slower for-of-iterate-array-values 3.2544+-0.1041 ! 3.5014+-0.0467 ! definitely 1.0759x slower fround 23.7282+-0.4417 ? 23.8400+-0.2980 ? ftl-library-inlining-dataview 107.9242+-0.6088 ? 115.6103+-11.9045 ? might be 1.0712x slower ftl-library-inlining 117.2339+-2.4175 ! 245.6906+-1.1726 ! definitely 2.0957x slower function-dot-apply 2.2786+-0.0098 ? 2.3436+-0.0647 ? might be 1.0285x slower function-test 5.3097+-0.1325 5.2401+-0.0750 might be 1.0133x faster function-with-eval 101.2485+-1.2094 ? 103.8206+-1.7340 ? might be 1.0254x slower gcse-poly-get-less-obvious 28.8805+-0.6493 ? 29.2017+-0.2475 ? might be 1.0111x slower gcse-poly-get 29.6693+-0.1896 29.5824+-0.1225 gcse 7.6027+-0.2077 7.5268+-0.1043 might be 1.0101x faster get-by-id-bimorphic-check-structure-elimination-simple 3.7701+-0.0394 3.7465+-0.0108 get-by-id-bimorphic-check-structure-elimination 9.5609+-0.2145 ? 9.6694+-0.2811 ? might be 1.0114x slower get-by-id-chain-from-try-block 8.1755+-0.2677 ? 8.3133+-0.0614 ? might be 1.0169x slower get-by-id-check-structure-elimination 8.8322+-0.1214 8.7494+-0.1332 get-by-id-proto-or-self 25.4989+-2.1303 24.2618+-0.2823 might be 1.0510x faster get-by-id-quadmorphic-check-structure-elimination-simple 4.4816+-0.0097 ? 4.5354+-0.0676 ? might be 1.0120x slower get-by-id-self-or-proto 25.7465+-1.9853 25.6263+-2.0098 get-by-val-out-of-bounds 6.5629+-0.0770 ! 6.8056+-0.1005 ! definitely 1.0370x slower get_callee_monomorphic 5.2307+-0.1385 ! 5.7568+-0.1931 ! definitely 1.1006x slower get_callee_polymorphic 4.8890+-0.1102 ? 5.0372+-0.0830 ? might be 1.0303x slower getter-no-activation 6.7556+-0.0261 6.7266+-0.0278 getter-richards 148.3134+-2.2161 ! 171.1773+-12.6598 ! definitely 1.1542x slower getter 7.4530+-0.1178 7.4248+-0.0502 global-var-const-infer-fire-from-opt 1.2201+-0.0409 ? 1.2854+-0.1200 ? might be 1.0535x slower global-var-const-infer 1.0084+-0.0117 ! 1.1513+-0.0475 ! definitely 1.1417x slower HashMap-put-get-iterate-keys 40.3140+-0.5637 ! 41.3503+-0.1698 ! definitely 1.0257x slower HashMap-put-get-iterate 40.0692+-0.7920 ? 41.0160+-0.5516 ? might be 1.0236x slower HashMap-string-put-get-iterate 45.2174+-0.3892 ! 46.2565+-0.4403 ! definitely 1.0230x slower hoist-make-rope 14.5331+-0.8306 13.7299+-0.8730 might be 1.0585x faster hoist-poly-check-structure-effectful-loop 7.5829+-0.1798 7.5802+-0.1329 hoist-poly-check-structure 5.6131+-0.0788 ? 5.6177+-0.0712 ? imul-double-only 9.8824+-0.2246 9.7987+-0.2891 imul-int-only 13.1509+-0.2008 13.1478+-0.4071 imul-mixed 9.7733+-0.6316 ? 9.9004+-0.5586 ? might be 1.0130x slower in-four-cases 28.0680+-0.4071 ? 28.3701+-0.4414 ? might be 1.0108x slower in-one-case-false 14.7792+-0.1496 ? 14.8164+-0.1647 ? in-one-case-true 14.7841+-0.0986 ? 14.8957+-0.1372 ? in-two-cases 15.3987+-0.1712 ? 15.5478+-0.0993 ? indexed-properties-in-objects 4.3348+-0.0646 4.3118+-0.0682 infer-closure-const-then-mov-no-inline 4.7544+-0.0239 ! 4.9085+-0.1295 ! definitely 1.0324x slower infer-closure-const-then-mov 29.1077+-0.0829 ? 29.4478+-0.5085 ? might be 1.0117x slower infer-closure-const-then-put-to-scope-no-inline 17.5287+-0.0810 ? 17.7077+-0.1183 ? might be 1.0102x slower infer-closure-const-then-put-to-scope 33.1638+-0.0622 ? 33.2358+-0.1164 ? infer-closure-const-then-reenter-no-inline 76.9813+-0.0660 ? 77.8245+-1.8401 ? might be 1.0110x slower infer-closure-const-then-reenter 33.7093+-1.3263 33.5891+-0.7351 infer-constant-global-property 5.4012+-0.0626 ? 5.4907+-0.0595 ? might be 1.0166x slower infer-constant-property 3.7014+-0.0551 3.6850+-0.0641 infer-one-time-closure-ten-vars 16.4184+-0.2454 16.0735+-0.4230 might be 1.0215x faster infer-one-time-closure-two-vars 15.6706+-0.0272 15.3992+-0.3003 might be 1.0176x faster infer-one-time-closure 15.6248+-0.2457 15.3024+-0.1760 might be 1.0211x faster infer-one-time-deep-closure 28.1337+-0.0504 ? 28.2795+-0.2898 ? inline-arguments-access 2.2284+-0.0221 ? 2.2598+-0.0099 ? might be 1.0141x slower inline-arguments-aliased-access 2.4840+-0.0461 ? 2.5285+-0.0331 ? might be 1.0179x slower inline-arguments-local-escape 21.7103+-0.1963 ^ 19.5709+-0.3432 ^ definitely 1.1093x faster inline-get-scoped-var 6.4462+-0.0478 ? 6.4584+-0.0293 ? inlined-put-by-id-transition 15.5298+-0.4605 ? 16.0583+-0.3292 ? might be 1.0340x slower int-or-other-abs-then-get-by-val 7.9238+-0.0596 ? 7.9944+-0.1402 ? int-or-other-abs-zero-then-get-by-val 29.3335+-0.6164 ? 29.4068+-0.3994 ? int-or-other-add-then-get-by-val 6.7423+-0.0312 ? 6.7740+-0.0562 ? int-or-other-add 9.0375+-0.1085 ? 9.2550+-0.3023 ? might be 1.0241x slower int-or-other-div-then-get-by-val 5.9186+-0.0767 ? 5.9220+-0.0391 ? int-or-other-max-then-get-by-val 7.3984+-0.0807 7.3401+-0.1286 int-or-other-min-then-get-by-val 5.9890+-0.0991 ? 6.0916+-0.1330 ? might be 1.0171x slower int-or-other-mod-then-get-by-val 5.8326+-0.0255 ? 5.8773+-0.0663 ? int-or-other-mul-then-get-by-val 5.7337+-0.0770 ? 5.7402+-0.0244 ? int-or-other-neg-then-get-by-val 7.1951+-0.1152 ? 7.1991+-0.0551 ? int-or-other-neg-zero-then-get-by-val 29.1572+-0.1584 ? 29.1693+-0.1339 ? int-or-other-sub-then-get-by-val 6.7738+-0.0434 ? 6.8458+-0.0805 ? might be 1.0106x slower int-or-other-sub 5.4503+-0.0277 ? 5.4902+-0.0214 ? int-overflow-local 6.7122+-0.1076 ? 6.7250+-0.1503 ? Int16Array-alloc-long-lived 72.7139+-0.1587 ? 72.9076+-0.6702 ? Int16Array-bubble-sort-with-byteLength 44.9039+-1.0334 44.1993+-0.1615 might be 1.0159x faster Int16Array-bubble-sort 43.4370+-0.1486 43.2877+-0.1864 Int16Array-load-int-mul 2.0840+-0.0046 2.0835+-0.0077 Int16Array-to-Int32Array-set 82.7086+-0.3049 ! 87.0656+-0.8107 ! definitely 1.0527x slower Int32Array-alloc-large 43.4162+-1.8565 42.7529+-1.4942 might be 1.0155x faster Int32Array-alloc-long-lived 81.2545+-0.5999 ? 81.8340+-0.9948 ? Int32Array-alloc 4.7760+-0.1456 ? 4.8638+-0.0290 ? might be 1.0184x slower Int32Array-Int8Array-view-alloc 15.3896+-0.6278 ? 15.5507+-0.5784 ? might be 1.0105x slower int52-spill 10.9772+-0.1772 ? 11.3459+-0.1985 ? might be 1.0336x slower Int8Array-alloc-long-lived 66.8892+-0.8229 ? 67.1739+-0.7065 ? Int8Array-load-with-byteLength 5.5431+-0.0470 ^ 5.4417+-0.0118 ^ definitely 1.0186x faster Int8Array-load 5.5574+-0.0547 5.5199+-0.0841 integer-divide 16.8712+-0.1581 ? 16.9096+-0.1098 ? integer-modulo 3.1772+-0.1836 ? 3.4584+-0.4216 ? might be 1.0885x slower large-int-captured 10.8572+-0.1418 ? 11.0835+-0.0870 ? might be 1.0208x slower large-int-neg 24.1204+-0.2080 ? 24.5785+-0.4672 ? might be 1.0190x slower large-int 21.2810+-0.2706 ? 21.5322+-0.1433 ? might be 1.0118x slower logical-not 6.8320+-0.1610 ? 6.9331+-0.1173 ? might be 1.0148x slower lots-of-fields 16.9863+-0.1784 16.8774+-0.1038 make-indexed-storage 4.4037+-0.1556 ? 4.4752+-0.4083 ? might be 1.0162x slower make-rope-cse 6.2021+-0.0512 ? 6.3977+-0.3021 ? might be 1.0315x slower marsaglia-larger-ints 59.5178+-0.5611 ? 59.5899+-0.4273 ? marsaglia-osr-entry 31.2731+-0.1675 31.1202+-0.4470 max-boolean 3.8229+-0.3714 3.7331+-0.0083 might be 1.0240x faster method-on-number 27.1779+-0.1975 ! 30.3108+-0.6378 ! definitely 1.1153x slower min-boolean 3.6464+-0.0541 ? 3.6784+-0.0123 ? minus-boolean-double 4.7898+-0.0458 ? 4.8185+-0.0613 ? minus-boolean 3.6416+-0.0077 3.6262+-0.0101 misc-strict-eq 56.0305+-1.0099 ? 57.0334+-0.4647 ? might be 1.0179x slower mod-boolean-double 13.8369+-0.2471 13.7671+-0.2517 mod-boolean 10.6383+-0.1666 10.5840+-0.1914 mul-boolean-double 5.5928+-0.0202 ? 5.6349+-0.0596 ? mul-boolean 3.9476+-0.0180 ? 3.9585+-0.0432 ? neg-boolean 4.8771+-0.0335 ? 4.9074+-0.0693 ? negative-zero-divide 0.4255+-0.0064 ? 0.4310+-0.0032 ? might be 1.0130x slower negative-zero-modulo 0.4271+-0.0025 ? 0.4314+-0.0028 ? negative-zero-negate 0.3964+-0.0047 ? 0.4042+-0.0139 ? might be 1.0196x slower nested-function-parsing 48.2688+-0.1841 ? 48.6317+-0.2069 ? new-array-buffer-dead 4.0551+-0.0899 ? 4.0584+-0.0196 ? new-array-buffer-push 10.7448+-0.2226 ? 10.8280+-0.1936 ? new-array-dead 14.6072+-0.3720 ? 14.6792+-0.3417 ? new-array-push 7.4956+-0.0709 ? 7.6716+-0.1674 ? might be 1.0235x slower number-test 4.6529+-0.0464 ? 4.7153+-0.0828 ? might be 1.0134x slower object-closure-call 9.0801+-0.0500 ! 9.3610+-0.0683 ! definitely 1.0309x slower object-test 5.2729+-0.1414 ^ 4.9899+-0.0589 ^ definitely 1.0567x faster plus-boolean-arith 3.7214+-0.0704 3.7021+-0.0269 plus-boolean-double 4.8250+-0.0538 4.7956+-0.0065 plus-boolean 3.5483+-0.0077 ? 3.5799+-0.0438 ? poly-chain-access-different-prototypes-simple 4.4329+-0.0595 4.4078+-0.0113 poly-chain-access-different-prototypes 3.6477+-0.0114 ? 3.6804+-0.0819 ? poly-chain-access-simpler 4.4125+-0.0368 ? 4.4916+-0.0855 ? might be 1.0179x slower poly-chain-access 2.9438+-0.3245 2.8384+-0.0154 might be 1.0371x faster poly-stricteq 82.3957+-0.4197 ! 88.4969+-1.9664 ! definitely 1.0740x slower polymorphic-array-call 2.2066+-0.0405 ! 2.3590+-0.0559 ! definitely 1.0690x slower polymorphic-get-by-id 4.7201+-0.0234 ! 4.7803+-0.0357 ! definitely 1.0128x slower polymorphic-put-by-id 86.2443+-29.6564 81.6410+-29.1725 might be 1.0564x faster polymorphic-structure 24.6422+-0.1170 ! 25.3254+-0.1829 ! definitely 1.0277x slower polyvariant-monomorphic-get-by-id 13.3549+-0.1580 ? 13.3887+-0.0753 ? proto-getter-access 13.5797+-0.2157 ? 13.8084+-0.4650 ? might be 1.0168x slower put-by-id-replace-and-transition 12.6757+-0.3127 ? 12.7481+-0.3001 ? put-by-id-slightly-polymorphic 4.0240+-0.0412 ? 4.0768+-0.0699 ? might be 1.0131x slower put-by-id 20.7420+-0.3027 ? 21.1634+-0.6558 ? might be 1.0203x slower put-by-val-direct 0.7765+-0.0036 ? 0.7918+-0.0234 ? might be 1.0197x slower put-by-val-large-index-blank-indexing-type 10.6985+-0.1832 ? 10.9771+-0.2403 ? might be 1.0260x slower put-by-val-machine-int 4.3063+-0.3595 ! 4.7480+-0.0804 ! definitely 1.1026x slower rare-osr-exit-on-local 21.4996+-0.0686 ? 21.6802+-0.3917 ? register-pressure-from-osr 31.4600+-0.1320 ? 31.6612+-0.1986 ? setter 7.5181+-0.1024 7.4937+-0.0529 simple-activation-demo 34.9887+-0.3058 ! 35.4025+-0.0862 ! definitely 1.0118x slower simple-getter-access 20.0808+-0.0958 ? 20.1695+-0.2059 ? sin-boolean 23.3501+-0.6824 ? 23.5441+-0.4531 ? slow-array-profile-convergence 4.3835+-0.2761 ? 4.4949+-0.2700 ? might be 1.0254x slower slow-convergence 4.8167+-0.0365 ! 4.8901+-0.0353 ! definitely 1.0153x slower sparse-conditional 1.4936+-0.0065 ! 1.5271+-0.0123 ! definitely 1.0225x slower splice-to-remove 26.8143+-0.2504 ! 27.6512+-0.0662 ! definitely 1.0312x slower string-char-code-at 23.4559+-0.1942 ? 23.4622+-0.1856 ? string-concat-object 3.1878+-0.0258 ! 3.3193+-0.0265 ! definitely 1.0413x slower string-concat-pair-object 3.0872+-0.0777 ! 3.2718+-0.0352 ! definitely 1.0598x slower string-concat-pair-simple 18.2696+-0.3434 ? 18.6531+-0.4338 ? might be 1.0210x slower string-concat-simple 18.9032+-0.3255 18.6884+-0.4764 might be 1.0115x faster string-cons-repeat 11.8949+-0.0625 ? 12.2565+-0.3367 ? might be 1.0304x slower string-cons-tower 10.8406+-0.0600 ! 11.1663+-0.0910 ! definitely 1.0300x slower string-equality 26.5059+-0.6858 26.0701+-0.0802 might be 1.0167x faster string-get-by-val-big-char 13.8569+-0.2013 ? 14.2324+-0.2791 ? might be 1.0271x slower string-get-by-val-out-of-bounds-insane 6.0043+-0.0717 ! 6.1569+-0.0390 ! definitely 1.0254x slower string-get-by-val-out-of-bounds 7.1113+-0.0553 ? 7.1373+-0.0517 ? string-get-by-val 5.5613+-0.0607 5.5402+-0.0170 string-hash 2.8945+-0.0451 ! 2.9958+-0.0214 ! definitely 1.0350x slower string-long-ident-equality 21.2633+-0.1318 ? 21.3094+-0.2824 ? string-repeat-arith 53.8283+-10.1851 49.6236+-0.4122 might be 1.0847x faster string-sub 97.3188+-1.1952 ! 101.8421+-2.3255 ! definitely 1.0465x slower string-test 4.7010+-0.0627 ? 4.7357+-0.1066 ? string-var-equality 51.9943+-0.1795 ? 52.2426+-0.2455 ? structure-hoist-over-transitions 3.8705+-0.0427 ! 3.9849+-0.0650 ! definitely 1.0296x slower substring-concat-weird 62.9460+-0.1656 ! 63.5704+-0.2875 ! definitely 1.0099x slower substring-concat 66.2943+-0.2028 ? 66.7864+-0.4511 ? substring 74.4264+-0.4050 ? 74.8293+-0.3304 ? switch-char-constant 3.6706+-0.0219 ? 3.7008+-0.0309 ? switch-char 9.2951+-0.0857 ? 9.3075+-0.1130 ? switch-constant 11.5334+-0.1755 ? 11.7368+-0.1523 ? might be 1.0176x slower switch-string-basic-big-var 25.1402+-1.3067 ! 29.4400+-1.0104 ! definitely 1.1710x slower switch-string-basic-big 32.0174+-2.7936 ? 34.2216+-2.4362 ? might be 1.0688x slower switch-string-basic-var 32.0105+-1.5654 32.0094+-0.8883 switch-string-basic 31.0760+-2.7808 30.7463+-1.8825 might be 1.0107x faster switch-string-big-length-tower-var 30.2799+-0.9706 30.0269+-0.1881 switch-string-length-tower-var 23.9233+-0.1867 ? 24.0913+-0.3416 ? switch-string-length-tower 17.3235+-0.0433 ? 17.4904+-0.2235 ? switch-string-short 17.4749+-0.1428 ? 17.4835+-0.3803 ? switch 15.9124+-0.2143 15.9015+-0.0669 tear-off-arguments-simple 2.3287+-0.0164 ! 2.5720+-0.1497 ! definitely 1.1045x slower tear-off-arguments 3.8643+-0.0104 ! 4.0242+-0.0130 ! definitely 1.0414x slower temporal-structure 20.1475+-0.2064 ? 20.1825+-0.0938 ? to-int32-boolean 24.6566+-0.1523 ? 24.7677+-0.3832 ? undefined-test 4.8538+-0.0747 ? 4.8565+-0.0346 ? unprofiled-licm 31.3057+-0.2047 ? 31.4430+-0.3394 ? weird-inlining-const-prop 2.7104+-0.1223 ! 2.9942+-0.1460 ! definitely 1.1047x slower <arithmetic> 21.8689+-0.1213 ! 22.8627+-0.1064 ! definitely 1.0454x slower <geometric> * 11.0378+-0.0151 ! 11.3472+-0.0155 ! definitely 1.0280x slower <harmonic> 5.4626+-0.0128 ! 5.6060+-0.0159 ! definitely 1.0263x slower TipOfTree PolyInline AsmBench: bigfib.cpp 799.2611+-4.8441 794.6537+-3.7161 cray.c 796.3080+-4.4432 ? 797.6588+-4.2970 ? dry.c 783.7422+-14.1210 ! 878.8225+-66.6639 ! definitely 1.1213x slower FloatMM.c 1149.1156+-1.2332 ^ 1146.3254+-0.5445 ^ definitely 1.0024x faster gcc-loops.cpp 7556.1780+-6.4996 ? 7559.7502+-33.0406 ? n-body.c 2008.2700+-0.5115 ! 2018.2236+-0.8709 ! definitely 1.0050x slower Quicksort.c 694.2459+-6.8429 683.3355+-11.5786 might be 1.0160x faster stepanov_container.cpp 5844.8735+-17.6618 5810.5035+-19.7012 Towers.c 490.9645+-0.8605 ? 492.2882+-1.2147 ? <arithmetic> 2235.8843+-2.6210 ? 2242.3957+-4.7507 ? might be 1.0029x slower <geometric> * 1372.8810+-3.5203 ? 1387.0235+-11.2090 ? might be 1.0103x slower <harmonic> 1007.5988+-3.3288 ? 1020.1513+-10.5509 ? might be 1.0125x slower TipOfTree PolyInline All benchmarks: <arithmetic> 155.4976+-1.5019 ? 156.8181+-0.1094 ? might be 1.0085x slower <geometric> 17.9436+-0.0296 ! 18.3902+-0.0230 ! definitely 1.0249x slower <harmonic> 4.8940+-0.0148 4.8928+-0.0142 might be 1.0002x faster TipOfTree PolyInline Geomean of preferred means: <scaled-result> 79.4568+-0.2092 ! 81.1770+-0.0816 ! definitely 1.0216x slower Created attachment 237032 [details] net win on Octane Still more work to do, though, to get the profiling overheads down. Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, and AsmBench on oldmac (MacPro4,1). VMs tested: "TipOfTree" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r172835) "PolyInline" at /Volumes/Data/fromMiniMe/quartary/OpenSource/WebKitBuild/Release/jsc (r172859) 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. TipOfTree PolyInline SunSpider: 3d-cube 7.6408+-0.2298 ? 7.9173+-0.0823 ? might be 1.0362x slower 3d-morph 9.6020+-0.0905 ? 9.6593+-0.1489 ? 3d-raytrace 9.5602+-0.0496 ! 9.8986+-0.1268 ! definitely 1.0354x slower access-binary-trees 2.7455+-0.0959 ! 3.0341+-0.0776 ! definitely 1.1051x slower access-fannkuch 9.0990+-0.1402 ! 9.4654+-0.1593 ! definitely 1.0403x slower access-nbody 4.5960+-0.0908 ? 4.7150+-0.0409 ? might be 1.0259x slower access-nsieve 5.7740+-0.1226 ? 5.8458+-0.1033 ? might be 1.0124x slower bitops-3bit-bits-in-byte 1.8569+-0.0137 ! 1.9089+-0.0260 ! definitely 1.0280x slower bitops-bits-in-byte 6.7451+-0.0529 ? 6.8670+-0.0965 ? might be 1.0181x slower bitops-bitwise-and 3.1903+-0.0111 3.1803+-0.0221 bitops-nsieve-bits 5.6805+-0.0259 ? 5.7293+-0.0590 ? controlflow-recursive 2.9695+-0.0296 ! 3.1042+-0.0536 ! definitely 1.0454x slower crypto-aes 6.2360+-0.0653 ? 6.3121+-0.1422 ? might be 1.0122x slower crypto-md5 3.7733+-0.0751 ? 3.8748+-0.1056 ? might be 1.0269x slower crypto-sha1 3.7269+-0.0739 ! 4.4466+-0.0968 ! definitely 1.1931x slower date-format-tofte 13.1156+-0.1280 ! 13.5616+-0.1692 ! definitely 1.0340x slower date-format-xparb 8.5513+-0.1210 ! 9.1130+-0.1909 ! definitely 1.0657x slower math-cordic 4.6621+-0.0465 ! 4.8370+-0.0412 ! definitely 1.0375x slower math-partial-sums 10.3396+-0.2205 ? 10.5805+-0.1436 ? might be 1.0233x slower math-spectral-norm 3.0365+-0.0382 ? 3.0891+-0.0344 ? might be 1.0173x slower regexp-dna 11.8090+-0.1710 11.6386+-0.0258 might be 1.0146x faster string-base64 6.4532+-0.1799 ? 6.8889+-0.3622 ? might be 1.0675x slower string-fasta 10.2771+-0.1624 ? 10.4446+-0.1148 ? might be 1.0163x slower string-tagcloud 15.2708+-0.1875 ! 15.6865+-0.1323 ! definitely 1.0272x slower string-unpack-code 30.8256+-0.1212 ! 31.7189+-0.7041 ! definitely 1.0290x slower string-validate-input 7.8102+-0.1269 ? 7.9396+-0.1841 ? might be 1.0166x slower <arithmetic> * 7.8980+-0.0209 ! 8.1330+-0.0489 ! definitely 1.0298x slower <geometric> 6.4867+-0.0244 ! 6.7090+-0.0218 ! definitely 1.0343x slower <harmonic> 5.4067+-0.0268 ! 5.6168+-0.0081 ! definitely 1.0389x slower TipOfTree PolyInline LongSpider: 3d-cube 1341.8253+-7.7750 ? 1356.3524+-10.5059 ? might be 1.0108x slower 3d-morph 2272.9116+-2.3708 ? 2273.4519+-2.8413 ? 3d-raytrace 1324.5221+-9.5140 ? 1341.7846+-14.2927 ? might be 1.0130x slower access-binary-trees 1668.0361+-5.6247 ? 1669.3883+-7.2266 ? access-fannkuch 523.3738+-14.8233 521.0778+-19.7895 access-nbody 1247.5282+-3.2609 ? 1248.2963+-2.4629 ? access-nsieve 1611.1295+-6.7361 ? 1612.6228+-3.8365 ? bitops-3bit-bits-in-byte 56.5320+-0.5036 56.3791+-0.5493 bitops-bits-in-byte 392.9395+-3.0921 390.6637+-4.7671 bitops-nsieve-bits 1186.4144+-9.8490 1185.9570+-12.2096 controlflow-recursive 866.1827+-0.8707 ? 866.6567+-5.0428 ? crypto-aes 1136.2072+-6.2712 1131.0698+-4.8592 crypto-md5 957.4582+-4.4824 ! 985.2439+-4.5019 ! definitely 1.0290x slower crypto-sha1 1204.9118+-10.2171 1199.2144+-4.8111 date-format-tofte 1200.2168+-15.5885 ? 1210.8988+-28.0683 ? date-format-xparb 1318.2989+-9.0685 ? 1326.3974+-20.3261 ? math-cordic 813.2514+-2.4790 ! 987.2022+-9.8856 ! definitely 1.2139x slower math-partial-sums 1316.7447+-3.3683 ? 1316.7893+-3.2535 ? math-spectral-norm 1296.4225+-0.7173 1296.0231+-1.0547 string-base64 589.0979+-5.2099 ! 605.5664+-2.6062 ! definitely 1.0280x slower string-fasta 703.7744+-6.5302 ? 711.8535+-25.2083 ? might be 1.0115x slower string-tagcloud 364.2499+-6.7982 363.0503+-1.8159 <arithmetic> 1063.2740+-1.3888 ! 1075.2700+-2.4858 ! definitely 1.0113x slower <geometric> * 886.3199+-2.1332 ! 897.5233+-3.1614 ! definitely 1.0126x slower <harmonic> 535.5747+-2.5987 ? 538.8522+-3.3288 ? might be 1.0061x slower TipOfTree PolyInline V8Spider: crypto 81.7677+-1.2873 ? 82.6742+-1.3955 ? might be 1.0111x slower deltablue 99.3877+-0.6500 ! 121.2636+-1.5019 ! definitely 1.2201x slower earley-boyer 73.4692+-1.7027 ! 76.3920+-0.8476 ! definitely 1.0398x slower raytrace 44.1616+-0.9866 ! 49.7854+-0.5089 ! definitely 1.1273x slower regexp 103.5191+-0.4314 ! 104.5638+-0.2609 ! definitely 1.0101x slower richards 107.6851+-1.1029 ! 119.6004+-0.9336 ! definitely 1.1106x slower splay 49.8807+-0.6637 ? 50.4298+-0.5554 ? might be 1.0110x slower <arithmetic> 79.9816+-0.4629 ! 86.3870+-0.4092 ! definitely 1.0801x slower <geometric> * 76.0065+-0.5035 ! 81.5759+-0.3581 ! definitely 1.0733x slower <harmonic> 71.7531+-0.5589 ! 76.6867+-0.3049 ! definitely 1.0688x slower TipOfTree PolyInline Octane: encrypt 0.39478+-0.00066 ? 0.39480+-0.00120 ? decrypt 7.15369+-0.00366 ? 7.16119+-0.01853 ? deltablue x2 0.43896+-0.00327 ^ 0.34248+-0.00230 ^ definitely 1.2817x faster earley 1.34312+-0.00966 ? 1.35659+-0.00664 ? might be 1.0100x slower boyer 10.39834+-0.07543 10.37315+-0.08061 navier-stokes x2 7.74102+-0.01835 7.72825+-0.00389 raytrace x2 2.68212+-0.04305 2.61640+-0.03525 might be 1.0251x faster richards x2 0.22629+-0.01071 0.21348+-0.00276 might be 1.0600x faster splay x2 0.63113+-0.00466 0.62399+-0.00324 might be 1.0114x faster regexp x2 61.07738+-0.56699 ! 62.38084+-0.45159 ! definitely 1.0213x slower pdfjs x2 87.65308+-2.24117 ? 88.89246+-0.45228 ? might be 1.0141x slower mandreel x2 91.94791+-0.56528 ? 93.01922+-0.78005 ? might be 1.0117x slower gbemu x2 68.47757+-0.17254 ! 77.43528+-0.29474 ! definitely 1.1308x slower closure 0.90849+-0.00247 ? 0.91226+-0.00161 ? jquery 11.40303+-0.03961 ^ 11.31109+-0.02673 ^ definitely 1.0081x faster box2d x2 24.58176+-0.09628 ! 24.94783+-0.15282 ! definitely 1.0149x slower zlib x2 815.49236+-2.71876 ? 815.67525+-2.23740 ? typescript x2 1289.53402+-5.17354 ! 1340.94942+-10.01479 ! definitely 1.0399x slower <arithmetic> 164.41896+-0.29962 ! 168.70530+-0.63543 ! definitely 1.0261x slower <geometric> * 12.32124+-0.05631 ^ 12.22531+-0.02526 ^ definitely 1.0078x faster <harmonic> 1.33511+-0.02610 ^ 1.23382+-0.00662 ^ definitely 1.0821x faster TipOfTree PolyInline Kraken: ai-astar 527.769+-1.338 ? 527.876+-1.001 ? audio-beat-detection 179.796+-4.260 ? 183.259+-0.764 ? might be 1.0193x slower audio-dft 253.621+-1.058 ? 265.417+-20.515 ? might be 1.0465x slower audio-fft 130.538+-0.870 130.173+-0.280 audio-oscillator 368.497+-1.706 368.406+-1.513 imaging-darkroom 286.559+-1.922 ? 288.850+-1.259 ? imaging-desaturate 112.567+-0.493 ? 112.605+-0.454 ? imaging-gaussian-blur 179.097+-0.679 ? 179.651+-0.511 ? json-parse-financial 82.996+-1.400 ? 83.736+-0.293 ? json-stringify-tinderbox 105.374+-0.668 ! 107.473+-0.665 ! definitely 1.0199x slower stanford-crypto-aes 101.548+-2.603 ? 103.256+-1.448 ? might be 1.0168x slower stanford-crypto-ccm 93.788+-8.347 89.625+-10.000 might be 1.0464x faster stanford-crypto-pbkdf2 275.659+-3.058 ? 277.542+-1.461 ? stanford-crypto-sha256-iterative 107.185+-0.261 ! 108.576+-0.538 ! definitely 1.0130x slower <arithmetic> * 200.357+-0.547 ? 201.889+-1.278 ? might be 1.0076x slower <geometric> 169.680+-1.089 ? 170.772+-1.398 ? might be 1.0064x slower <harmonic> 147.664+-1.647 ? 148.253+-2.053 ? might be 1.0040x slower TipOfTree PolyInline JSRegress: abs-boolean 4.1979+-0.0444 ? 4.2486+-0.0491 ? might be 1.0121x slower adapt-to-double-divide 20.0150+-0.3361 ? 20.2787+-0.0633 ? might be 1.0132x slower aliased-arguments-getbyval 1.0998+-0.0116 ! 1.1639+-0.0286 ! definitely 1.0583x slower allocate-big-object 3.6044+-0.1269 ? 3.7659+-0.0436 ? might be 1.0448x slower arity-mismatch-inlining 1.0141+-0.0058 ? 1.0493+-0.0499 ? might be 1.0347x slower array-access-polymorphic-structure 10.8636+-0.0988 ? 10.9049+-0.1827 ? array-nonarray-polymorhpic-access 60.4900+-0.7078 ? 60.7666+-0.3763 ? array-prototype-every 123.6209+-0.3795 ^ 121.5876+-1.5206 ^ definitely 1.0167x faster array-prototype-forEach 125.4949+-3.6799 122.2211+-2.5648 might be 1.0268x faster array-prototype-map 150.7363+-4.1096 149.4692+-4.9118 array-prototype-some 122.8436+-0.5108 ^ 120.8694+-1.0430 ^ definitely 1.0163x faster array-splice-contiguous 68.2619+-0.6018 ! 74.4968+-0.2639 ! definitely 1.0913x slower array-with-double-add 6.7114+-0.1456 6.6899+-0.1292 array-with-double-increment 4.7264+-0.0790 4.7166+-0.1105 array-with-double-mul-add 8.1499+-0.1398 ^ 7.8773+-0.0843 ^ definitely 1.0346x faster array-with-double-sum 5.0321+-0.0497 4.9902+-0.0613 array-with-int32-add-sub 11.9364+-0.2241 11.8564+-0.2759 array-with-int32-or-double-sum 5.0925+-0.0857 ? 5.1635+-0.0811 ? might be 1.0139x slower ArrayBuffer-DataView-alloc-large-long-lived 115.4490+-1.2211 ? 116.7811+-1.6823 ? might be 1.0115x slower ArrayBuffer-DataView-alloc-long-lived 32.5190+-0.6874 ? 32.5643+-0.2124 ? ArrayBuffer-Int32Array-byteOffset 5.3617+-0.2117 5.2709+-0.0348 might be 1.0172x faster ArrayBuffer-Int8Array-alloc-large-long-lived 118.8927+-0.8068 ? 120.9924+-1.6704 ? might be 1.0177x slower ArrayBuffer-Int8Array-alloc-long-lived-buffer 51.1529+-0.3854 50.9518+-0.3873 ArrayBuffer-Int8Array-alloc-long-lived 31.3424+-0.3880 ? 31.5558+-0.5185 ? ArrayBuffer-Int8Array-alloc 28.1086+-0.9918 28.0802+-0.4032 asmjs_bool_bug 10.1890+-0.1834 ? 10.2413+-0.2213 ? assign-custom-setter-polymorphic 4.8897+-0.0148 ? 4.9888+-0.1516 ? might be 1.0203x slower assign-custom-setter 6.7745+-0.2387 6.6799+-0.0958 might be 1.0142x faster basic-set 15.4196+-0.2082 ! 15.9730+-0.2056 ! definitely 1.0359x slower big-int-mul 6.3184+-0.0835 ! 6.9423+-0.1976 ! definitely 1.0987x slower boolean-test 4.8131+-0.0510 4.7430+-0.0835 might be 1.0148x faster branch-fold 5.1636+-0.0330 5.1296+-0.1325 by-val-generic 12.8571+-0.1350 ? 13.0918+-0.3156 ? might be 1.0183x slower call-spread-apply 20.3323+-0.2850 ? 20.9537+-0.8937 ? might be 1.0306x slower call-spread-call 8.9836+-0.4020 8.7648+-0.1229 might be 1.0250x faster captured-assignments 0.5824+-0.0036 ? 0.5828+-0.0031 ? cast-int-to-double 9.3641+-0.0451 ? 9.4191+-0.0489 ? cell-argument 10.9897+-0.0756 ? 11.1197+-0.0777 ? might be 1.0118x slower cfg-simplify 4.0844+-0.0530 ? 4.1044+-0.0694 ? chain-getter-access 13.6357+-0.1549 ? 13.7771+-0.1584 ? might be 1.0104x slower cmpeq-obj-to-obj-other 13.7075+-0.4344 13.6706+-0.2798 constant-test 8.8652+-0.0906 8.8379+-0.1057 DataView-custom-properties 123.4853+-1.8705 ? 124.5702+-1.8723 ? delay-tear-off-arguments-strictmode 3.6386+-0.0163 ! 3.8042+-0.0960 ! definitely 1.0455x slower destructuring-arguments 8.9133+-0.0403 ! 9.0529+-0.0561 ! definitely 1.0157x slower destructuring-swap 8.8641+-0.0711 ! 9.1582+-0.1016 ! definitely 1.0332x slower direct-arguments-getbyval 1.1134+-0.0119 ! 1.1588+-0.0257 ! definitely 1.0407x slower div-boolean-double 6.3372+-0.0781 ? 6.4441+-0.1151 ? might be 1.0169x slower div-boolean 11.5912+-0.2323 ? 11.7523+-0.0872 ? might be 1.0139x slower double-get-by-val-out-of-bounds 6.7323+-0.0980 6.7249+-0.0503 double-pollution-getbyval 11.3925+-0.1203 11.2275+-0.1782 might be 1.0147x faster double-pollution-putbyoffset 6.2859+-0.2786 6.2268+-0.1548 double-to-int32-typed-array-no-inline 3.0026+-0.0604 ! 3.1624+-0.0618 ! definitely 1.0532x slower double-to-int32-typed-array 2.4562+-0.0260 ! 2.6810+-0.0541 ! definitely 1.0915x slower double-to-uint32-typed-array-no-inline 3.0473+-0.0393 ! 3.2669+-0.0787 ! definitely 1.0721x slower double-to-uint32-typed-array 2.6409+-0.0228 ! 2.8468+-0.0156 ! definitely 1.0780x slower empty-string-plus-int 10.2299+-0.0839 ! 10.6618+-0.2253 ! definitely 1.0422x slower emscripten-cube2hash 54.3981+-0.8949 ! 56.2412+-0.8003 ! definitely 1.0339x slower external-arguments-getbyval 2.0574+-0.0491 2.0268+-0.0104 might be 1.0151x faster external-arguments-putbyval 3.0207+-0.0104 ? 3.0624+-0.0381 ? might be 1.0138x slower fixed-typed-array-storage-var-index 1.5072+-0.0115 ! 1.5490+-0.0155 ! definitely 1.0278x slower fixed-typed-array-storage 1.1073+-0.0288 ? 1.1206+-0.0095 ? might be 1.0120x slower Float32Array-matrix-mult 7.3328+-0.3834 ? 7.5280+-0.1133 ? might be 1.0266x slower Float32Array-to-Float64Array-set 90.1246+-2.5682 89.8899+-2.0352 Float64Array-alloc-long-lived 101.8514+-0.7644 101.5079+-1.1640 Float64Array-to-Int16Array-set 115.9603+-1.0297 ! 117.8083+-0.6298 ! definitely 1.0159x slower fold-double-to-int 20.8783+-0.2787 ? 21.0995+-0.3449 ? might be 1.0106x slower fold-get-by-id-to-multi-get-by-offset-rare-int 19.0483+-0.1527 ! 24.7414+-0.1509 ! definitely 1.2989x slower fold-get-by-id-to-multi-get-by-offset 18.1609+-0.2627 ! 23.3417+-0.3399 ! definitely 1.2853x slower fold-multi-get-by-offset-to-get-by-offset 12.9561+-0.1483 ! 18.5838+-0.1483 ! definitely 1.4344x slower fold-multi-get-by-offset-to-poly-get-by-offset 13.3470+-0.2802 ! 18.5862+-0.2108 ! definitely 1.3925x slower fold-multi-put-by-offset-to-poly-put-by-offset 13.2766+-0.1544 ! 19.1757+-0.4152 ! definitely 1.4443x slower fold-multi-put-by-offset-to-put-by-offset 12.8645+-0.8985 ! 17.7067+-0.1125 ! definitely 1.3764x slower fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 17.8403+-0.7552 ! 23.4543+-0.3432 ! definitely 1.3147x slower fold-put-by-id-to-multi-put-by-offset 20.7412+-0.3290 ! 26.2583+-0.3991 ! definitely 1.2660x slower fold-put-structure 12.7478+-0.2130 ! 17.9418+-0.1380 ! definitely 1.4074x slower for-of-iterate-array-entries 9.3312+-0.1445 ^ 9.0725+-0.0833 ^ definitely 1.0285x faster for-of-iterate-array-keys 3.6012+-0.0891 ! 4.1769+-0.0488 ! definitely 1.1599x slower for-of-iterate-array-values 3.2140+-0.0880 ! 3.6057+-0.0643 ! definitely 1.1219x slower fround 23.6842+-0.2218 ? 23.9080+-0.2482 ? ftl-library-inlining-dataview 108.1061+-0.8906 ? 108.8958+-1.4733 ? ftl-library-inlining 117.7048+-2.8956 ! 243.0572+-0.5889 ! definitely 2.0650x slower function-dot-apply 2.2878+-0.0403 ? 2.3509+-0.0495 ? might be 1.0276x slower function-test 5.3066+-0.1541 5.2499+-0.0890 might be 1.0108x faster function-with-eval 101.8664+-2.3038 ? 113.7687+-22.9575 ? might be 1.1168x slower gcse-poly-get-less-obvious 29.0819+-0.2137 ? 29.2177+-0.4039 ? gcse-poly-get 29.8180+-0.3434 29.7022+-0.3251 gcse 7.5336+-0.0940 ? 7.5788+-0.1146 ? get-by-id-bimorphic-check-structure-elimination-simple 3.7517+-0.0336 ? 3.8058+-0.0869 ? might be 1.0144x slower get-by-id-bimorphic-check-structure-elimination 9.6832+-0.1863 ? 9.7026+-0.2100 ? get-by-id-chain-from-try-block 8.1724+-0.1644 ? 8.2702+-0.1657 ? might be 1.0120x slower get-by-id-check-structure-elimination 8.8005+-0.1430 8.7830+-0.1566 get-by-id-proto-or-self 25.6605+-3.0317 23.9368+-0.4594 might be 1.0720x faster get-by-id-quadmorphic-check-structure-elimination-simple 4.5338+-0.0589 4.5190+-0.0646 get-by-id-self-or-proto 25.2563+-1.9235 24.3235+-0.4265 might be 1.0383x faster get-by-val-out-of-bounds 6.6049+-0.0898 ? 6.7124+-0.1758 ? might be 1.0163x slower get_callee_monomorphic 5.1292+-0.1267 ! 5.6877+-0.0583 ! definitely 1.1089x slower get_callee_polymorphic 4.9364+-0.0673 ? 5.0298+-0.1112 ? might be 1.0189x slower getter-no-activation 6.7428+-0.0246 6.7094+-0.0575 getter-richards 147.1201+-4.9276 ! 164.3554+-8.5479 ! definitely 1.1172x slower getter 7.4113+-0.0197 ? 7.4849+-0.0902 ? global-var-const-infer-fire-from-opt 1.2076+-0.0195 ! 1.3288+-0.0271 ! definitely 1.1003x slower global-var-const-infer 1.0453+-0.0297 ! 1.1220+-0.0076 ! definitely 1.0734x slower HashMap-put-get-iterate-keys 40.1963+-0.4583 ! 41.5192+-0.4147 ! definitely 1.0329x slower HashMap-put-get-iterate 39.8826+-0.4124 ! 41.2769+-0.4003 ! definitely 1.0350x slower HashMap-string-put-get-iterate 45.5079+-0.8551 ? 47.2897+-1.9670 ? might be 1.0392x slower hoist-make-rope 14.0658+-1.1636 ? 15.3326+-1.1472 ? might be 1.0901x slower hoist-poly-check-structure-effectful-loop 7.4871+-0.2569 ? 7.5666+-0.1416 ? might be 1.0106x slower hoist-poly-check-structure 5.5740+-0.0277 ? 5.6377+-0.0753 ? might be 1.0114x slower imul-double-only 9.7322+-0.3396 ? 10.1670+-0.9110 ? might be 1.0447x slower imul-int-only 13.0831+-0.1570 ? 13.4385+-0.3405 ? might be 1.0272x slower imul-mixed 10.1237+-0.1776 9.6082+-0.7657 might be 1.0537x faster in-four-cases 28.3230+-0.3299 28.0955+-0.3463 in-one-case-false 14.7578+-0.1627 ? 14.7764+-0.1328 ? in-one-case-true 14.8377+-0.1013 ? 14.8680+-0.1153 ? in-two-cases 15.3117+-0.1508 ? 15.4573+-0.1559 ? indexed-properties-in-objects 4.2771+-0.0088 4.2660+-0.1284 infer-closure-const-then-mov-no-inline 4.7352+-0.0312 ? 4.8665+-0.1145 ? might be 1.0277x slower infer-closure-const-then-mov 29.2152+-0.1385 ? 29.2527+-0.2495 ? infer-closure-const-then-put-to-scope-no-inline 17.5442+-0.1216 ? 17.6831+-0.1789 ? infer-closure-const-then-put-to-scope 33.1944+-0.0984 ? 33.3073+-0.1277 ? infer-closure-const-then-reenter-no-inline 77.1045+-0.0420 ? 77.1987+-0.2027 ? infer-closure-const-then-reenter 35.2553+-5.0194 33.3635+-0.2739 might be 1.0567x faster infer-constant-global-property 5.4215+-0.0716 ? 5.4881+-0.0619 ? might be 1.0123x slower infer-constant-property 3.6573+-0.0050 ? 3.6802+-0.0581 ? infer-one-time-closure-ten-vars 16.3623+-0.1512 ^ 15.8024+-0.3354 ^ definitely 1.0354x faster infer-one-time-closure-two-vars 15.7463+-0.1009 15.4551+-0.3076 might be 1.0188x faster infer-one-time-closure 15.6590+-0.0670 ^ 15.2995+-0.1994 ^ definitely 1.0235x faster infer-one-time-deep-closure 28.1105+-0.1194 ? 28.3051+-0.1551 ? inline-arguments-access 2.2132+-0.0111 ! 2.2625+-0.0185 ! definitely 1.0223x slower inline-arguments-aliased-access 2.4663+-0.0078 ! 2.5210+-0.0170 ! definitely 1.0222x slower inline-arguments-local-escape 21.6986+-0.2676 ^ 19.5682+-0.2632 ^ definitely 1.1089x faster inline-get-scoped-var 6.4376+-0.0376 ? 6.4747+-0.0513 ? inlined-put-by-id-transition 15.8503+-0.2639 15.7643+-0.2148 int-or-other-abs-then-get-by-val 8.0042+-0.0987 7.9665+-0.0960 int-or-other-abs-zero-then-get-by-val 29.3303+-0.5235 29.0638+-0.1341 int-or-other-add-then-get-by-val 6.7180+-0.0358 ? 6.8191+-0.1338 ? might be 1.0151x slower int-or-other-add 8.9227+-0.0453 ! 9.2469+-0.1815 ! definitely 1.0363x slower int-or-other-div-then-get-by-val 5.8894+-0.0171 ! 5.9285+-0.0092 ! definitely 1.0066x slower int-or-other-max-then-get-by-val 7.5146+-0.1464 ? 7.6135+-0.1489 ? might be 1.0132x slower int-or-other-min-then-get-by-val 5.9762+-0.0327 ? 6.0087+-0.0376 ? int-or-other-mod-then-get-by-val 5.8238+-0.0260 ? 5.8888+-0.0897 ? might be 1.0112x slower int-or-other-mul-then-get-by-val 5.6980+-0.0312 ? 5.7690+-0.0805 ? might be 1.0125x slower int-or-other-neg-then-get-by-val 7.1333+-0.0432 ? 7.1816+-0.0667 ? int-or-other-neg-zero-then-get-by-val 29.1470+-0.1693 29.1346+-0.0998 int-or-other-sub-then-get-by-val 6.7319+-0.1065 ? 6.7585+-0.0518 ? int-or-other-sub 5.4528+-0.0210 ! 5.4883+-0.0110 ! definitely 1.0065x slower int-overflow-local 6.6462+-0.0460 ? 6.7167+-0.0952 ? might be 1.0106x slower Int16Array-alloc-long-lived 73.1718+-0.8995 ? 73.8988+-0.3836 ? Int16Array-bubble-sort-with-byteLength 44.4028+-0.2199 ? 44.6653+-1.0025 ? Int16Array-bubble-sort 43.2161+-0.3977 ? 43.7899+-0.7829 ? might be 1.0133x slower Int16Array-load-int-mul 2.1088+-0.0374 2.1074+-0.0324 Int16Array-to-Int32Array-set 83.1607+-1.0270 ! 87.5991+-1.6158 ! definitely 1.0534x slower Int32Array-alloc-large 43.1672+-1.6349 42.3226+-1.9383 might be 1.0200x faster Int32Array-alloc-long-lived 80.6878+-0.7606 ? 81.4666+-0.7147 ? Int32Array-alloc 4.8323+-0.0230 4.8232+-0.1581 Int32Array-Int8Array-view-alloc 15.0128+-0.0468 ! 15.5460+-0.4391 ! definitely 1.0355x slower int52-spill 10.9720+-0.3816 ? 11.4159+-0.2091 ? might be 1.0405x slower Int8Array-alloc-long-lived 67.0735+-0.8928 66.6676+-0.8605 Int8Array-load-with-byteLength 5.5084+-0.0673 5.5075+-0.0886 Int8Array-load 5.4576+-0.0123 5.4449+-0.0202 integer-divide 16.9566+-0.2727 ? 16.9961+-0.3382 ? integer-modulo 3.1656+-0.3778 ? 3.4523+-0.2037 ? might be 1.0906x slower large-int-captured 10.9777+-0.2067 ? 11.1615+-0.2507 ? might be 1.0167x slower large-int-neg 24.1664+-0.3900 24.0080+-0.2192 large-int 21.4093+-0.1590 ? 21.5427+-0.5586 ? logical-not 6.9698+-0.4174 6.8742+-0.0789 might be 1.0139x faster lots-of-fields 16.8497+-0.0766 16.8329+-0.2496 make-indexed-storage 4.3870+-0.2277 ? 4.6220+-0.1428 ? might be 1.0536x slower make-rope-cse 6.2167+-0.0520 ? 6.3191+-0.0886 ? might be 1.0165x slower marsaglia-larger-ints 59.5675+-0.2882 ? 60.0459+-0.7735 ? marsaglia-osr-entry 31.1365+-0.3387 ? 31.2384+-0.4060 ? max-boolean 3.7076+-0.0432 ? 3.7833+-0.0708 ? might be 1.0204x slower method-on-number 27.3115+-0.1886 ! 30.1966+-0.2299 ! definitely 1.1056x slower min-boolean 3.6482+-0.0398 ? 3.6749+-0.0201 ? minus-boolean-double 4.7901+-0.0484 4.7756+-0.0090 minus-boolean 3.6427+-0.0048 ^ 3.6137+-0.0154 ^ definitely 1.0080x faster misc-strict-eq 55.7164+-0.5216 ? 55.9538+-0.7735 ? mod-boolean-double 13.8346+-0.2232 13.8078+-0.1522 mod-boolean 10.6419+-0.1387 10.5245+-0.1541 might be 1.0112x faster mul-boolean-double 5.5980+-0.0094 ? 5.6433+-0.0614 ? mul-boolean 4.1418+-0.2279 3.9125+-0.1138 might be 1.0586x faster neg-boolean 4.8892+-0.0479 4.8476+-0.0091 negative-zero-divide 0.4236+-0.0024 ? 0.4248+-0.0018 ? negative-zero-modulo 0.4237+-0.0030 ? 0.4270+-0.0021 ? negative-zero-negate 0.3958+-0.0026 ? 0.3979+-0.0018 ? nested-function-parsing 48.3773+-0.1685 ? 49.2498+-1.3437 ? might be 1.0180x slower new-array-buffer-dead 4.0593+-0.0815 ? 4.1281+-0.1014 ? might be 1.0170x slower new-array-buffer-push 10.7193+-0.3140 ? 10.8320+-0.2098 ? might be 1.0105x slower new-array-dead 14.5273+-0.3136 ? 14.6045+-0.1909 ? new-array-push 7.5397+-0.1577 ? 7.6886+-0.1341 ? might be 1.0198x slower number-test 4.6450+-0.0212 ! 4.6741+-0.0027 ! definitely 1.0063x slower object-closure-call 9.1198+-0.1519 ? 9.3540+-0.1062 ? might be 1.0257x slower object-test 5.2648+-0.1949 5.1005+-0.1261 might be 1.0322x faster plus-boolean-arith 3.7242+-0.1077 3.7213+-0.0091 plus-boolean-double 4.7942+-0.0054 ? 4.8433+-0.0663 ? might be 1.0102x slower plus-boolean 3.5461+-0.0100 ? 3.5598+-0.0121 ? poly-chain-access-different-prototypes-simple 4.4626+-0.0526 4.4306+-0.0418 poly-chain-access-different-prototypes 3.6674+-0.0397 3.6566+-0.0075 poly-chain-access-simpler 4.4290+-0.0569 ? 4.4420+-0.0716 ? poly-chain-access 3.0970+-0.3251 2.9639+-0.3353 might be 1.0449x faster poly-stricteq 83.6217+-2.2448 ! 87.9983+-0.6855 ! definitely 1.0523x slower polymorphic-array-call 2.2222+-0.0599 ! 2.3546+-0.0465 ! definitely 1.0596x slower polymorphic-get-by-id 4.7187+-0.0172 ? 4.7493+-0.0160 ? polymorphic-put-by-id 98.0697+-24.3681 79.3468+-27.7915 might be 1.2360x faster polymorphic-structure 24.6554+-0.0999 ! 25.2350+-0.1435 ! definitely 1.0235x slower polyvariant-monomorphic-get-by-id 13.4194+-0.1241 13.3665+-0.1488 proto-getter-access 13.6849+-0.2658 ? 13.7981+-0.1519 ? put-by-id-replace-and-transition 12.6248+-0.1636 ? 12.6772+-0.2373 ? put-by-id-slightly-polymorphic 4.0219+-0.0382 ? 4.0258+-0.0482 ? put-by-id 21.1007+-0.4825 ? 21.2782+-0.6201 ? put-by-val-direct 0.7892+-0.0370 0.7826+-0.0051 put-by-val-large-index-blank-indexing-type 10.8450+-0.1899 ? 10.9387+-0.2526 ? put-by-val-machine-int 4.4728+-0.0509 ! 4.7688+-0.1321 ! definitely 1.0662x slower rare-osr-exit-on-local 21.5311+-0.4046 ? 21.5527+-0.1299 ? register-pressure-from-osr 31.7164+-0.5637 31.6260+-0.1221 setter 7.4416+-0.0472 7.4063+-0.0323 simple-activation-demo 35.5528+-0.5678 35.5390+-0.4073 simple-getter-access 20.3389+-0.4497 20.2657+-0.1220 sin-boolean 23.4221+-0.2708 23.4127+-0.2094 slow-array-profile-convergence 4.3958+-0.2932 4.3540+-0.2417 slow-convergence 4.8478+-0.0646 ? 4.9242+-0.0868 ? might be 1.0157x slower sparse-conditional 1.4896+-0.0235 ? 1.5218+-0.0103 ? might be 1.0216x slower splice-to-remove 26.9272+-0.2408 ! 27.5897+-0.2124 ! definitely 1.0246x slower string-char-code-at 23.3275+-0.1003 ? 23.4568+-0.0715 ? string-concat-object 3.1942+-0.0168 ! 3.3549+-0.0571 ! definitely 1.0503x slower string-concat-pair-object 3.1063+-0.1070 ! 3.3177+-0.0595 ! definitely 1.0681x slower string-concat-pair-simple 18.4374+-0.3759 ? 18.6713+-0.3251 ? might be 1.0127x slower string-concat-simple 18.3799+-0.2725 ? 18.7325+-0.3985 ? might be 1.0192x slower string-cons-repeat 11.8836+-0.0395 ! 12.1186+-0.0358 ! definitely 1.0198x slower string-cons-tower 10.8677+-0.0477 ! 11.1423+-0.0400 ! definitely 1.0253x slower string-equality 26.1840+-0.2317 26.1770+-0.0935 string-get-by-val-big-char 13.8209+-0.0878 ! 14.1711+-0.1826 ! definitely 1.0253x slower string-get-by-val-out-of-bounds-insane 5.9756+-0.0762 ? 6.0230+-0.1413 ? string-get-by-val-out-of-bounds 7.1722+-0.1160 ? 7.2187+-0.1208 ? string-get-by-val 5.5529+-0.0473 ? 5.5552+-0.0420 ? string-hash 2.9154+-0.1202 ? 2.9919+-0.0525 ? might be 1.0262x slower string-long-ident-equality 21.2562+-0.0787 ? 21.2907+-0.1076 ? string-repeat-arith 49.8890+-1.6692 ? 57.4615+-11.4261 ? might be 1.1518x slower string-sub 97.0829+-1.1645 ? 112.9704+-27.1701 ? might be 1.1636x slower string-test 4.6814+-0.0542 ? 4.7399+-0.0644 ? might be 1.0125x slower string-var-equality 52.0645+-0.1326 ? 52.1075+-0.0593 ? structure-hoist-over-transitions 3.9008+-0.0410 ? 3.9272+-0.0179 ? substring-concat-weird 62.8993+-0.4224 ! 63.6107+-0.2354 ! definitely 1.0113x slower substring-concat 66.0523+-0.3210 ? 66.9221+-0.6290 ? might be 1.0132x slower substring 74.5769+-0.6393 ? 74.7618+-0.1847 ? switch-char-constant 3.6830+-0.0182 ! 3.7624+-0.0463 ! definitely 1.0216x slower switch-char 9.2472+-0.1159 ? 9.3030+-0.1328 ? switch-constant 11.4307+-0.2208 ? 11.6811+-0.1196 ? might be 1.0219x slower switch-string-basic-big-var 26.0247+-0.4709 ? 27.5762+-1.9284 ? might be 1.0596x slower switch-string-basic-big 32.5875+-5.1036 ? 32.5888+-4.0839 ? switch-string-basic-var 32.2364+-0.8126 32.0137+-0.6497 switch-string-basic 29.9146+-3.3236 ? 32.3610+-2.3629 ? might be 1.0818x slower switch-string-big-length-tower-var 29.9972+-0.0963 ? 29.9981+-0.1249 ? switch-string-length-tower-var 23.9790+-0.2680 ? 23.9852+-0.1340 ? switch-string-length-tower 17.3320+-0.0332 ? 17.3774+-0.0615 ? switch-string-short 18.5106+-2.9360 17.3684+-0.1147 might be 1.0658x faster switch 16.0479+-0.1864 15.8092+-0.2444 might be 1.0151x faster tear-off-arguments-simple 2.3354+-0.0112 ! 2.4829+-0.0202 ! definitely 1.0632x slower tear-off-arguments 3.9943+-0.0889 ? 4.0535+-0.0477 ? might be 1.0148x slower temporal-structure 20.3344+-0.1143 20.1460+-0.0953 to-int32-boolean 24.6966+-0.2168 ? 24.7348+-0.1842 ? undefined-test 4.8610+-0.0529 ? 4.8658+-0.0568 ? unprofiled-licm 31.3988+-0.4238 31.2684+-0.6309 weird-inlining-const-prop 2.6705+-0.0621 ! 2.9369+-0.0936 ! definitely 1.0997x slower <arithmetic> 21.9290+-0.1393 ! 22.8579+-0.1550 ! definitely 1.0424x slower <geometric> * 11.0613+-0.0239 ! 11.3412+-0.0195 ! definitely 1.0253x slower <harmonic> 5.4729+-0.0084 ! 5.5902+-0.0106 ! definitely 1.0214x slower TipOfTree PolyInline AsmBench: bigfib.cpp 796.8540+-5.1282 ? 801.8202+-3.5901 ? cray.c 796.2454+-7.5238 ? 796.5911+-4.0687 ? dry.c 774.6597+-10.4498 ? 784.5348+-8.9135 ? might be 1.0127x slower FloatMM.c 1148.5861+-0.6920 1148.5180+-0.4762 gcc-loops.cpp 7554.7483+-16.7400 ? 7566.6718+-10.1157 ? n-body.c 2008.6216+-0.7456 ^ 2005.8173+-0.8630 ^ definitely 1.0014x faster Quicksort.c 691.6239+-8.2094 ? 699.8070+-7.2348 ? might be 1.0118x slower stepanov_container.cpp 5841.5354+-14.8307 ? 5851.3891+-21.6273 ? Towers.c 491.4585+-2.6998 ^ 484.8095+-1.5100 ^ definitely 1.0137x faster <arithmetic> 2233.8148+-2.7224 ? 2237.7732+-1.7716 ? might be 1.0018x slower <geometric> * 1370.0509+-3.4829 ? 1372.9959+-2.8997 ? might be 1.0021x slower <harmonic> 1005.0478+-3.8727 ? 1006.5637+-3.2032 ? might be 1.0015x slower TipOfTree PolyInline All benchmarks: <arithmetic> 154.9874+-0.1052 ! 156.9893+-0.2711 ! definitely 1.0129x slower <geometric> 17.9647+-0.0186 ! 18.3613+-0.0271 ! definitely 1.0221x slower <harmonic> 4.9114+-0.0275 ^ 4.8705+-0.0106 ^ definitely 1.0084x faster TipOfTree PolyInline Geomean of preferred means: <scaled-result> 79.4052+-0.1123 ! 81.0038+-0.0695 ! definitely 1.0201x slower Created attachment 237033 [details]
a wrong approch
This was an aborted attempt to reduce overhead by using GCD. It doesn't work. GCD dispatch_async isn't fast enough.
Created attachment 237039 [details] closer This is very close to being a proper speed-up. Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, and AsmBench on oldmac (MacPro4,1). VMs tested: "TipOfTree" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r172835) "OldPolyInline" at /Volumes/Data/fromMiniMe/quartary/OpenSource/Good/WebKitBuild/Release/jsc "PolyInline" at /Volumes/Data/fromMiniMe/quartary/OpenSource/WebKitBuild/Release/jsc (r172859) 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. TipOfTree OldPolyInline PolyInline PolyInline v. TipOfTree SunSpider: 3d-cube 7.5968+-0.1006 ! 7.9333+-0.1876 ^ 7.6663+-0.0769 ? 3d-morph 9.5368+-0.0470 ! 9.7130+-0.0758 9.6005+-0.0860 ? 3d-raytrace 9.6492+-0.1424 ! 9.9515+-0.1199 9.7634+-0.1927 ? might be 1.0118x slower access-binary-trees 2.8465+-0.0803 ? 2.9831+-0.1022 2.8157+-0.1096 might be 1.0109x faster access-fannkuch 9.0343+-0.2192 ? 9.3109+-0.1164 ? 9.3590+-0.1933 ? might be 1.0359x slower access-nbody 4.6316+-0.0148 ! 4.7056+-0.0394 ^ 4.6170+-0.0157 access-nsieve 5.8494+-0.1021 5.7934+-0.1002 5.7559+-0.0686 might be 1.0163x faster bitops-3bit-bits-in-byte 1.8552+-0.0158 ! 1.9158+-0.0153 ^ 1.8585+-0.0105 ? bitops-bits-in-byte 6.7489+-0.0529 ? 6.8406+-0.1374 6.6799+-0.1146 might be 1.0103x faster bitops-bitwise-and 3.1820+-0.0081 ? 3.1845+-0.0119 3.1799+-0.0156 bitops-nsieve-bits 5.7063+-0.0471 ? 5.7207+-0.0453 5.6712+-0.0339 controlflow-recursive 2.8976+-0.0699 ! 3.1888+-0.0992 3.1028+-0.0900 ! definitely 1.0708x slower crypto-aes 6.2038+-0.1265 ! 6.4553+-0.0609 ^ 6.2128+-0.0745 ? crypto-md5 3.6947+-0.0737 ! 3.9632+-0.0938 ^ 3.5592+-0.0931 might be 1.0381x faster crypto-sha1 3.7256+-0.0414 ! 4.3992+-0.0730 ^ 3.8115+-0.0737 ? might be 1.0231x slower date-format-tofte 13.1325+-0.0851 ! 13.5885+-0.1987 ^ 13.1220+-0.2073 date-format-xparb 8.5692+-0.1008 ! 9.1183+-0.1247 ^ 8.8153+-0.1222 ! definitely 1.0287x slower math-cordic 4.6991+-0.0248 ! 4.8151+-0.0618 4.7459+-0.0564 ? math-partial-sums 10.4487+-0.1216 10.3774+-0.1544 ? 10.4569+-0.1351 ? math-spectral-norm 3.0253+-0.0131 ! 3.0899+-0.0343 3.0553+-0.0589 ? regexp-dna 11.8418+-0.1761 ? 11.9746+-0.2893 11.6921+-0.0954 might be 1.0128x faster string-base64 6.3888+-0.0724 ! 6.7286+-0.0640 ^ 6.4840+-0.0541 ? might be 1.0149x slower string-fasta 10.2561+-0.2657 ? 10.3331+-0.2601 10.1315+-0.2475 might be 1.0123x faster string-tagcloud 15.2819+-0.1896 ? 15.3662+-0.1923 ? 15.4204+-0.3423 ? string-unpack-code 30.6004+-0.2242 ! 31.5393+-0.4892 31.0600+-0.2566 ? might be 1.0150x slower string-validate-input 7.6459+-0.0588 ! 7.8853+-0.0661 ^ 7.6635+-0.1098 ? <arithmetic> * 7.8865+-0.0281 ! 8.1106+-0.0312 ^ 7.9346+-0.0163 ! definitely 1.0061x slower <geometric> 6.4813+-0.0274 ! 6.7012+-0.0166 ^ 6.5152+-0.0178 ? might be 1.0052x slower <harmonic> 5.4042+-0.0272 ! 5.6193+-0.0179 ^ 5.4337+-0.0202 ? might be 1.0055x slower TipOfTree OldPolyInline PolyInline PolyInline v. TipOfTree LongSpider: 3d-cube 1349.9638+-8.7539 1341.9924+-8.6658 ? 1352.2807+-11.9435 ? 3d-morph 2293.9496+-54.3239 2272.9058+-2.7280 2271.9633+-1.8666 3d-raytrace 1318.5673+-8.5350 ! 1343.2097+-9.0392 1334.1944+-9.5874 ? might be 1.0119x slower access-binary-trees 1671.6794+-6.7045 ? 1673.7782+-6.9684 ? 1675.9381+-8.4777 ? access-fannkuch 518.1686+-18.0454 ? 523.6334+-22.5282 518.0250+-13.1596 access-nbody 1246.8274+-1.4745 ? 1246.8614+-0.7528 ? 1246.9889+-1.4063 ? access-nsieve 1610.7732+-4.0603 ? 1611.4959+-1.4659 ? 1613.7677+-6.2302 ? bitops-3bit-bits-in-byte 56.5205+-0.4801 ? 56.5494+-0.5069 ? 56.6397+-0.4483 ? bitops-bits-in-byte 394.4480+-8.6075 392.4211+-2.5878 391.6039+-6.5651 bitops-nsieve-bits 1180.9449+-3.3729 1179.7390+-3.6834 ? 1182.6170+-9.2748 ? controlflow-recursive 866.8516+-1.3217 864.2723+-1.5320 ? 865.7004+-1.2000 crypto-aes 1134.3077+-7.3833 1131.7182+-2.8674 1127.2899+-5.8699 crypto-md5 956.6052+-7.8949 ! 985.2729+-4.0365 ^ 963.4393+-6.0080 ? crypto-sha1 1199.3875+-3.1823 1199.1652+-3.7565 ? 1201.6001+-14.1220 ? date-format-tofte 1208.9655+-19.8661 1196.1195+-11.4344 1183.6710+-17.8630 might be 1.0214x faster date-format-xparb 1318.3267+-9.5408 ? 1327.7142+-17.7467 1327.1370+-16.6566 ? math-cordic 813.1115+-1.1082 ! 983.9172+-12.1013 ^ 812.7138+-1.4998 math-partial-sums 1315.3453+-1.8057 ? 1315.4757+-4.0901 1315.1383+-4.0014 math-spectral-norm 1296.1209+-0.8698 ? 1296.8169+-3.1618 ? 1304.9138+-13.3644 ? string-base64 590.2656+-4.4362 ! 606.5468+-1.7821 605.7721+-4.0021 ! definitely 1.0263x slower string-fasta 702.6789+-5.0791 ? 715.5973+-22.9297 700.3404+-5.8429 string-tagcloud 363.0031+-4.0172 360.8392+-2.6286 ? 364.0224+-2.0190 ? <arithmetic> 1063.9460+-2.9023 ! 1073.9110+-1.4746 ^ 1064.3526+-2.3943 ? might be 1.0004x slower <geometric> * 886.2058+-2.0155 ! 896.7825+-2.4972 ^ 887.1438+-2.3358 ? might be 1.0011x slower <harmonic> 535.2960+-1.4660 ? 539.3852+-2.9751 536.2064+-1.3968 ? might be 1.0017x slower TipOfTree OldPolyInline PolyInline PolyInline v. TipOfTree V8Spider: crypto 82.6233+-2.0640 82.1828+-0.8922 81.4173+-1.1905 might be 1.0148x faster deltablue 99.7906+-0.9344 ! 121.6040+-1.8495 ? 122.4672+-1.0183 ! definitely 1.2272x slower earley-boyer 74.6517+-1.0537 ? 75.9837+-0.6960 74.5497+-1.3398 raytrace 44.7302+-0.7809 ! 50.5652+-1.0741 ^ 46.4859+-0.6909 ! definitely 1.0393x slower regexp 103.4974+-0.6087 ? 104.5437+-0.6476 104.1118+-0.5190 ? richards 107.4693+-1.4098 ! 119.2686+-1.3092 119.1006+-1.2616 ! definitely 1.1082x slower splay 50.4520+-0.5289 ? 50.7996+-0.9773 50.1278+-0.4640 <arithmetic> 80.4592+-0.4942 ! 86.4211+-0.4176 ^ 85.4658+-0.3501 ! definitely 1.0622x slower <geometric> * 76.5777+-0.4674 ! 81.7064+-0.4761 ^ 80.2691+-0.3045 ! definitely 1.0482x slower <harmonic> 72.4058+-0.4585 ! 76.9431+-0.5730 ^ 74.9991+-0.2760 ! definitely 1.0358x slower TipOfTree OldPolyInline PolyInline PolyInline v. TipOfTree Octane: encrypt 0.39469+-0.00041 ? 0.39542+-0.00070 0.39457+-0.00060 decrypt 7.15540+-0.00490 ? 7.16783+-0.01390 ^ 7.14990+-0.00304 deltablue x2 0.44237+-0.00944 ^ 0.34085+-0.00071 ? 0.34263+-0.00156 ^ definitely 1.2911x faster earley 1.34044+-0.00931 ? 1.35331+-0.00724 ? 1.43291+-0.13590 ? might be 1.0690x slower boyer 10.38327+-0.11637 10.36485+-0.13204 ? 10.39576+-0.06340 ? navier-stokes x2 7.73287+-0.00630 7.72813+-0.00747 ? 7.73359+-0.00506 ? raytrace x2 2.65510+-0.02798 2.60345+-0.05979 ! 2.71553+-0.02297 ! definitely 1.0228x slower richards x2 0.22546+-0.00764 ^ 0.21279+-0.00168 ? 0.21400+-0.00349 ^ definitely 1.0536x faster splay x2 0.62883+-0.00589 0.62695+-0.00568 0.62436+-0.00609 regexp x2 61.05635+-0.52866 ? 62.20920+-0.79195 61.51487+-0.25551 ? pdfjs x2 86.61967+-0.12114 ! 88.75782+-0.38265 88.45366+-0.45158 ! definitely 1.0212x slower mandreel x2 91.75195+-0.59207 ? 93.89854+-1.74704 91.93713+-0.66630 ? gbemu x2 68.51092+-0.31507 ! 76.45508+-1.62798 74.52003+-1.38221 ! definitely 1.0877x slower closure 0.90815+-0.00185 ? 0.91114+-0.00232 0.90888+-0.00186 ? jquery 11.42428+-0.03007 ^ 11.31468+-0.06190 11.27173+-0.02340 ^ definitely 1.0135x faster box2d x2 24.64889+-0.07543 ? 24.86224+-0.15634 24.75145+-0.15630 ? zlib x2 780.59431+-57.54470 780.39533+-55.85512 ? 816.19238+-3.01953 ? might be 1.0456x slower typescript x2 1286.72534+-8.90420 ! 1339.83057+-6.17903 ^ 1312.64616+-6.59689 ! definitely 1.0201x slower <arithmetic> 161.82634+-3.56075 ? 166.24497+-3.54909 ? 166.49484+-0.59211 ! definitely 1.0288x slower <geometric> * 12.26354+-0.03428 ^ 12.17045+-0.05282 ? 12.19757+-0.05384 might be 1.0054x faster <harmonic> 1.33412+-0.01816 ^ 1.23148+-0.00333 ? 1.23799+-0.00976 ^ definitely 1.0776x faster TipOfTree OldPolyInline PolyInline PolyInline v. TipOfTree Kraken: ai-astar 527.596+-1.672 ? 528.664+-1.319 528.533+-1.728 ? audio-beat-detection 183.219+-1.109 182.450+-2.138 ? 182.908+-3.479 audio-dft 253.083+-1.108 ? 254.706+-0.679 ^ 253.227+-0.621 ? audio-fft 130.098+-0.471 ? 130.524+-0.675 129.885+-0.073 audio-oscillator 367.201+-0.939 367.154+-1.010 ? 367.836+-0.876 ? imaging-darkroom 286.597+-1.900 ? 288.655+-0.654 286.661+-1.617 ? imaging-desaturate 112.583+-0.313 ? 112.729+-0.453 112.547+-0.353 imaging-gaussian-blur 179.327+-0.591 179.212+-0.592 ? 181.914+-6.849 ? might be 1.0144x slower json-parse-financial 83.081+-1.351 ? 83.703+-0.739 ! 85.326+-0.092 ! definitely 1.0270x slower json-stringify-tinderbox 105.336+-0.367 ? 108.859+-3.366 ? 109.153+-0.464 ! definitely 1.0362x slower stanford-crypto-aes 101.613+-1.626 ? 102.128+-0.392 102.095+-0.656 ? stanford-crypto-ccm 93.789+-12.482 91.264+-10.204 87.678+-11.135 might be 1.0697x faster stanford-crypto-pbkdf2 274.520+-1.562 ? 282.098+-7.906 275.662+-0.409 ? stanford-crypto-sha256-iterative 107.149+-0.660 ? 108.169+-0.606 107.495+-0.195 ? <arithmetic> * 200.371+-0.876 ? 201.451+-1.084 200.780+-1.183 ? might be 1.0020x slower <geometric> 169.736+-1.581 ? 170.610+-1.683 170.014+-1.813 ? might be 1.0016x slower <harmonic> 147.655+-2.267 ? 148.355+-2.281 147.790+-2.333 ? might be 1.0009x slower TipOfTree OldPolyInline PolyInline PolyInline v. TipOfTree JSRegress: abs-boolean 4.2149+-0.0902 ? 4.2770+-0.0650 4.2188+-0.0499 ? adapt-to-double-divide 20.1724+-0.3184 ? 20.3609+-0.1524 20.1054+-0.3363 aliased-arguments-getbyval 1.0912+-0.0114 ! 1.1962+-0.0452 ^ 1.1184+-0.0152 ! definitely 1.0249x slower allocate-big-object 3.6155+-0.1075 ? 3.6673+-0.0796 3.6467+-0.0792 ? arity-mismatch-inlining 1.0099+-0.0138 ? 1.0306+-0.0160 1.0165+-0.0136 ? array-access-polymorphic-structure 10.9428+-0.1014 10.7421+-0.0993 ? 11.0142+-0.2007 ? array-nonarray-polymorhpic-access 60.8252+-0.1091 60.5706+-0.1949 ? 60.7668+-0.2217 array-prototype-every 124.2107+-0.8628 121.7947+-2.6764 ? 123.4568+-4.7834 array-prototype-forEach 123.4820+-0.6579 ^ 121.1670+-1.2575 ? 121.2454+-1.8350 might be 1.0184x faster array-prototype-map 149.1169+-2.7657 147.0619+-4.0173 ? 148.2559+-2.9524 array-prototype-some 122.5469+-0.0784 ^ 121.2598+-0.7501 120.8603+-2.1102 might be 1.0140x faster array-splice-contiguous 68.1283+-0.8982 ! 74.4046+-0.5605 ^ 67.7779+-0.6190 array-with-double-add 6.6599+-0.1047 ? 6.7511+-0.0750 6.7452+-0.1172 ? might be 1.0128x slower array-with-double-increment 4.6470+-0.0745 ? 4.6620+-0.0680 ? 4.6907+-0.0947 ? array-with-double-mul-add 7.9368+-0.2776 ? 7.9533+-0.2101 7.8784+-0.1924 array-with-double-sum 5.0224+-0.0586 4.9780+-0.0494 ? 5.0196+-0.0910 array-with-int32-add-sub 12.0887+-0.3792 11.9502+-0.3457 11.8022+-0.0904 might be 1.0243x faster array-with-int32-or-double-sum 5.0500+-0.0535 ? 5.1146+-0.0817 ? 5.1342+-0.0913 ? might be 1.0167x slower ArrayBuffer-DataView-alloc-large-long-lived 114.9350+-0.7464 ! 117.7443+-1.3931 115.9793+-1.1699 ? ArrayBuffer-DataView-alloc-long-lived 32.0286+-0.2330 ! 32.8248+-0.4955 32.4517+-0.6099 ? might be 1.0132x slower ArrayBuffer-Int32Array-byteOffset 5.2469+-0.0090 ? 5.2700+-0.0359 5.2610+-0.0171 ? ArrayBuffer-Int8Array-alloc-large-long-lived 119.6093+-1.1411 ? 121.5258+-1.8794 ? 121.5333+-2.5143 ? might be 1.0161x slower ArrayBuffer-Int8Array-alloc-long-lived-buffer 51.2499+-0.4186 ? 52.6272+-2.4502 50.8320+-0.4991 ArrayBuffer-Int8Array-alloc-long-lived 31.4915+-0.6563 ? 31.7945+-0.9916 31.4632+-0.5283 ArrayBuffer-Int8Array-alloc 27.8506+-0.3308 ? 28.4073+-1.1350 ? 28.8704+-1.4210 ? might be 1.0366x slower asmjs_bool_bug 10.1802+-0.1085 ? 10.2642+-0.1545 10.1805+-0.1020 ? assign-custom-setter-polymorphic 4.9108+-0.0458 ? 5.0059+-0.1602 4.9405+-0.0812 ? assign-custom-setter 6.6821+-0.0457 6.6583+-0.0323 ? 6.7067+-0.0903 ? basic-set 15.4140+-0.3285 ? 15.8613+-0.5977 15.6650+-0.3186 ? might be 1.0163x slower big-int-mul 6.3460+-0.0999 ! 6.8861+-0.1331 6.7775+-0.1090 ! definitely 1.0680x slower boolean-test 4.7800+-0.0447 ? 4.8091+-0.0475 4.7576+-0.0157 branch-fold 5.1593+-0.0467 5.0905+-0.0458 ? 5.0941+-0.0506 might be 1.0128x faster by-val-generic 13.1451+-0.4799 13.0213+-0.3579 12.9184+-0.4523 might be 1.0176x faster call-spread-apply 20.5652+-0.3384 20.2854+-0.3161 ? 20.4959+-0.2846 call-spread-call 8.6464+-0.1705 ? 9.0551+-0.4215 8.8556+-0.0886 ? might be 1.0242x slower captured-assignments 0.5823+-0.0040 ? 0.5837+-0.0034 ? 0.5894+-0.0065 ? might be 1.0122x slower cast-int-to-double 9.4029+-0.0753 ? 9.5295+-0.1981 9.3415+-0.1181 cell-argument 10.9720+-0.1187 ? 11.1541+-0.1282 11.1053+-0.1153 ? might be 1.0121x slower cfg-simplify 4.0688+-0.0260 4.0673+-0.0045 4.0595+-0.0160 chain-getter-access 13.6050+-0.1629 ? 13.6313+-0.1991 13.5080+-0.0982 cmpeq-obj-to-obj-other 13.5198+-0.5414 13.3979+-0.3906 12.8910+-0.4117 might be 1.0488x faster constant-test 8.7872+-0.0769 ? 8.8425+-0.1299 8.7507+-0.0809 DataView-custom-properties 123.6864+-1.3454 ? 124.4644+-1.5391 123.9122+-1.3967 ? delay-tear-off-arguments-strictmode 3.6319+-0.0153 ! 3.7894+-0.0134 ^ 3.6685+-0.0214 ? might be 1.0101x slower destructuring-arguments 8.8802+-0.1753 ? 9.0114+-0.0451 8.9311+-0.1445 ? destructuring-swap 8.8676+-0.1154 ? 9.0483+-0.1203 8.9306+-0.0787 ? direct-arguments-getbyval 1.1325+-0.0331 ? 1.1444+-0.0078 ^ 1.1215+-0.0122 div-boolean-double 6.4262+-0.0634 ? 6.4512+-0.1110 6.4451+-0.0770 ? div-boolean 11.6290+-0.1057 11.6010+-0.1708 ? 11.7338+-0.1791 ? double-get-by-val-out-of-bounds 6.6636+-0.0733 ? 6.8449+-0.3559 6.7746+-0.1097 ? might be 1.0167x slower double-pollution-getbyval 11.3584+-0.1128 ? 11.4490+-0.1361 11.3746+-0.1243 ? double-pollution-putbyoffset 6.0847+-0.1287 ? 6.2992+-0.1768 6.1707+-0.2125 ? might be 1.0141x slower double-to-int32-typed-array-no-inline 2.9698+-0.0273 ! 3.1902+-0.0813 ^ 2.9883+-0.0612 ? double-to-int32-typed-array 2.4681+-0.0772 ! 2.6932+-0.0862 ^ 2.4713+-0.0161 ? double-to-uint32-typed-array-no-inline 3.0086+-0.0230 ! 3.2881+-0.0787 ^ 3.0789+-0.0686 ? might be 1.0234x slower double-to-uint32-typed-array 2.6413+-0.0216 ! 2.9299+-0.1329 ^ 2.7011+-0.0671 ? might be 1.0226x slower empty-string-plus-int 10.2400+-0.1017 ! 10.6539+-0.1174 10.4852+-0.0740 ! definitely 1.0239x slower emscripten-cube2hash 54.2860+-0.5619 ! 56.3243+-0.7747 ^ 54.3014+-0.3371 ? external-arguments-getbyval 2.0283+-0.0093 ? 2.0393+-0.0182 2.0347+-0.0255 ? external-arguments-putbyval 3.0343+-0.0279 ? 3.0375+-0.0420 3.0019+-0.0306 might be 1.0108x faster fixed-typed-array-storage-var-index 1.5154+-0.0341 ? 1.5505+-0.0127 ^ 1.5180+-0.0068 ? fixed-typed-array-storage 1.0880+-0.0090 ! 1.1273+-0.0044 ^ 1.0919+-0.0100 ? Float32Array-matrix-mult 7.4491+-0.0591 ? 7.5377+-0.1312 7.2648+-0.3790 might be 1.0254x faster Float32Array-to-Float64Array-set 88.5121+-0.6146 ? 89.3494+-0.6009 89.0419+-1.3288 ? Float64Array-alloc-long-lived 102.6328+-0.8965 102.1440+-1.2115 101.8468+-0.7838 Float64Array-to-Int16Array-set 115.8131+-0.8523 ! 117.4233+-0.7073 116.9263+-0.3519 ? fold-double-to-int 20.8053+-0.3197 ? 21.0478+-0.3862 20.8540+-0.3034 ? fold-get-by-id-to-multi-get-by-offset-rare-int 19.1012+-0.2874 ! 24.5503+-0.3224 24.2385+-0.2306 ! definitely 1.2690x slower fold-get-by-id-to-multi-get-by-offset 18.3438+-0.2683 ! 23.3331+-0.4904 22.8990+-0.4426 ! definitely 1.2483x slower fold-multi-get-by-offset-to-get-by-offset 13.0212+-0.0795 ! 18.5174+-0.1443 ^ 18.0711+-0.2738 ! definitely 1.3878x slower fold-multi-get-by-offset-to-poly-get-by-offset 13.2924+-0.2919 ! 18.6169+-0.1115 ^ 17.8204+-0.3874 ! definitely 1.3406x slower fold-multi-put-by-offset-to-poly-put-by-offset 13.3301+-0.1486 ! 19.5227+-0.2028 ^ 18.4902+-0.0496 ! definitely 1.3871x slower fold-multi-put-by-offset-to-put-by-offset 13.4483+-1.7540 ! 17.8152+-0.1150 ^ 16.9463+-0.2826 ! definitely 1.2601x slower fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 17.7071+-0.6060 ! 23.1230+-0.4855 22.5600+-0.2714 ! definitely 1.2741x slower fold-put-by-id-to-multi-put-by-offset 20.9670+-0.3716 ! 26.4670+-0.3657 25.9551+-0.5619 ! definitely 1.2379x slower fold-put-structure 12.8079+-0.1597 ! 17.9431+-0.0855 ^ 17.5135+-0.2245 ! definitely 1.3674x slower for-of-iterate-array-entries 9.3572+-0.1680 ^ 9.1008+-0.0864 ^ 8.4761+-0.1667 ^ definitely 1.1040x faster for-of-iterate-array-keys 3.5922+-0.0550 ! 4.1378+-0.0592 ^ 3.9735+-0.0857 ! definitely 1.1061x slower for-of-iterate-array-values 3.1787+-0.0823 ! 3.5773+-0.0826 ^ 3.2542+-0.0832 ? might be 1.0238x slower fround 23.8782+-0.3309 ? 23.9093+-0.2415 23.8439+-0.3053 ftl-library-inlining-dataview 107.7988+-0.1560 ? 111.3772+-7.9733 109.1687+-2.8471 ? might be 1.0127x slower ftl-library-inlining 116.7308+-0.4075 ! 127.7039+-0.2288 ! 243.0603+-0.3448 ! definitely 2.0822x slower function-dot-apply 2.2889+-0.0134 ! 2.3272+-0.0103 2.3138+-0.0533 ? might be 1.0108x slower function-test 5.2900+-0.1696 5.1798+-0.0188 ? 5.2205+-0.1003 might be 1.0133x faster function-with-eval 102.4097+-0.7999 ? 104.4310+-1.6402 ? 105.7574+-2.0458 ! definitely 1.0327x slower gcse-poly-get-less-obvious 28.9382+-0.5229 ? 29.0958+-0.6040 29.0524+-0.5800 ? gcse-poly-get 29.6153+-0.1166 29.5472+-0.1214 ? 29.6174+-0.1013 ? gcse 7.6211+-0.1937 ? 7.7217+-0.1647 7.6543+-0.0666 ? get-by-id-bimorphic-check-structure-elimination-simple 3.8330+-0.0888 3.7885+-0.0591 3.7813+-0.0473 might be 1.0137x faster get-by-id-bimorphic-check-structure-elimination 9.5620+-0.1533 9.4995+-0.1931 ? 9.6287+-0.2736 ? get-by-id-chain-from-try-block 8.3120+-0.1389 8.2718+-0.1943 8.0079+-0.1981 might be 1.0380x faster get-by-id-check-structure-elimination 8.7340+-0.1850 ? 8.7651+-0.1844 8.7610+-0.1383 ? get-by-id-proto-or-self 24.0046+-0.5082 ? 24.7312+-1.6547 ? 25.3319+-2.4623 ? might be 1.0553x slower get-by-id-quadmorphic-check-structure-elimination-simple 4.4948+-0.0428 ? 4.5187+-0.0676 ? 4.5581+-0.0635 ? might be 1.0141x slower get-by-id-self-or-proto 25.4301+-0.9813 24.9903+-1.6589 ? 25.4714+-2.2733 ? get-by-val-out-of-bounds 6.6345+-0.0523 ! 6.8168+-0.1124 6.6717+-0.2015 ? get_callee_monomorphic 5.1977+-0.1359 ! 5.6157+-0.0573 ^ 5.3387+-0.0877 ? might be 1.0271x slower get_callee_polymorphic 4.8602+-0.0884 ? 5.0148+-0.0985 4.9111+-0.1170 ? might be 1.0105x slower getter-no-activation 6.7906+-0.0641 6.7151+-0.0453 ? 6.7275+-0.0897 getter-richards 148.0258+-3.5250 ! 169.3017+-4.3334 164.3755+-5.7176 ! definitely 1.1105x slower getter 7.4442+-0.0572 7.4325+-0.0850 7.4296+-0.0629 global-var-const-infer-fire-from-opt 1.2294+-0.0433 ? 1.3107+-0.0806 1.2013+-0.0847 might be 1.0234x faster global-var-const-infer 1.0243+-0.0364 ! 1.1145+-0.0087 ^ 1.0283+-0.0100 ? HashMap-put-get-iterate-keys 40.1326+-0.7138 ? 41.8599+-1.2027 40.4428+-0.7204 ? HashMap-put-get-iterate 39.8010+-0.3942 ! 41.0865+-0.5813 40.4625+-0.6635 ? might be 1.0166x slower HashMap-string-put-get-iterate 44.8446+-0.7066 ! 46.1707+-0.4664 45.8397+-0.6010 ? might be 1.0222x slower hoist-make-rope 14.0753+-1.2504 ? 14.7747+-0.8972 13.7929+-1.3152 might be 1.0205x faster hoist-poly-check-structure-effectful-loop 7.4896+-0.0621 ? 7.5360+-0.2758 ? 7.5702+-0.1113 ? might be 1.0108x slower hoist-poly-check-structure 5.6362+-0.1124 ? 5.6482+-0.1073 ? 5.6543+-0.0808 ? imul-double-only 10.1981+-0.8168 9.8805+-0.3423 9.7654+-0.3830 might be 1.0443x faster imul-int-only 13.0827+-0.1119 ? 13.3298+-0.1702 13.3048+-0.1314 ? might be 1.0170x slower imul-mixed 9.8456+-0.5843 ? 10.0185+-0.3136 9.6497+-0.7022 might be 1.0203x faster in-four-cases 28.2120+-0.3360 ? 28.2530+-0.3102 ? 28.3617+-0.4256 ? in-one-case-false 14.7668+-0.0877 ? 14.7990+-0.2108 ? 14.8452+-0.3040 ? in-one-case-true 14.7075+-0.1135 ? 14.7787+-0.1291 14.7604+-0.1627 ? in-two-cases 15.4447+-0.1222 ? 15.5025+-0.0979 ^ 15.3342+-0.0655 indexed-properties-in-objects 4.3050+-0.0492 4.3016+-0.0917 4.2992+-0.0556 infer-closure-const-then-mov-no-inline 4.7486+-0.0152 ! 4.8519+-0.0205 ^ 4.7330+-0.0084 infer-closure-const-then-mov 29.1043+-0.0819 ? 29.2180+-0.0412 29.1016+-0.1024 infer-closure-const-then-put-to-scope-no-inline 17.4561+-0.0222 ! 17.6377+-0.0737 17.5462+-0.1088 ? infer-closure-const-then-put-to-scope 33.1772+-0.1312 ? 33.2922+-0.1369 ^ 33.0945+-0.0282 infer-closure-const-then-reenter-no-inline 76.9737+-0.0644 ? 77.1346+-0.1070 ? 77.2095+-0.3940 ? infer-closure-const-then-reenter 33.1945+-0.0914 ? 33.1958+-0.1676 33.1919+-0.0850 infer-constant-global-property 5.4030+-0.0555 ! 5.5414+-0.0622 ^ 5.4041+-0.0653 ? infer-constant-property 3.6915+-0.0667 ? 3.7079+-0.0620 3.6709+-0.0567 infer-one-time-closure-ten-vars 16.3735+-0.1747 ^ 15.9333+-0.2396 ? 16.2356+-0.2883 infer-one-time-closure-two-vars 15.6768+-0.1157 ^ 15.2970+-0.1931 ! 15.8749+-0.1478 ? might be 1.0126x slower infer-one-time-closure 15.5477+-0.3015 15.2528+-0.1789 ? 15.5892+-0.1607 ? infer-one-time-deep-closure 28.1987+-0.1366 ? 28.2817+-0.0952 28.1884+-0.0894 inline-arguments-access 2.2107+-0.0181 ! 2.2583+-0.0076 ^ 2.2150+-0.0094 ? inline-arguments-aliased-access 2.4686+-0.0084 ! 2.5201+-0.0151 2.4905+-0.0457 ? inline-arguments-local-escape 21.6478+-0.1514 ^ 19.7438+-0.2543 ? 19.8426+-0.3683 ^ definitely 1.0910x faster inline-get-scoped-var 6.4697+-0.0557 ? 6.4948+-0.1071 6.4896+-0.0904 ? inlined-put-by-id-transition 15.6674+-0.3907 ? 15.9262+-0.3730 15.5127+-0.4936 int-or-other-abs-then-get-by-val 7.9280+-0.0928 ? 7.9707+-0.0671 ? 8.0153+-0.1383 ? might be 1.0110x slower int-or-other-abs-zero-then-get-by-val 29.2338+-0.2342 29.1597+-0.2512 29.1448+-0.1256 int-or-other-add-then-get-by-val 6.7465+-0.1016 ? 6.8022+-0.1140 6.7734+-0.0882 ? int-or-other-add 9.0803+-0.0994 ? 9.2464+-0.0781 ^ 9.0397+-0.0948 int-or-other-div-then-get-by-val 5.8866+-0.0165 ? 5.9354+-0.0742 5.9303+-0.0827 ? int-or-other-max-then-get-by-val 7.3757+-0.0882 ? 7.4250+-0.1276 ? 7.4610+-0.3155 ? might be 1.0116x slower int-or-other-min-then-get-by-val 6.0041+-0.0807 ? 6.0204+-0.0412 ? 6.0264+-0.0703 ? int-or-other-mod-then-get-by-val 5.8297+-0.0273 ? 5.8522+-0.0371 ? 5.8634+-0.0747 ? int-or-other-mul-then-get-by-val 5.7387+-0.1060 ? 5.7741+-0.0857 5.7260+-0.0663 int-or-other-neg-then-get-by-val 7.1411+-0.0611 ? 7.1862+-0.0758 7.1336+-0.0609 int-or-other-neg-zero-then-get-by-val 29.1423+-0.2511 ? 29.2471+-0.2541 29.0911+-0.1030 int-or-other-sub-then-get-by-val 6.7624+-0.1592 ? 6.8160+-0.0746 6.7995+-0.1017 ? int-or-other-sub 5.4883+-0.0792 ? 5.4975+-0.0132 5.4795+-0.0571 int-overflow-local 6.6740+-0.0255 6.6375+-0.0471 ? 6.6930+-0.1061 ? Int16Array-alloc-long-lived 72.8366+-0.1796 ! 73.4300+-0.3516 73.4033+-0.7072 ? Int16Array-bubble-sort-with-byteLength 44.2252+-0.3810 ? 44.3159+-0.8990 44.2410+-0.2993 ? Int16Array-bubble-sort 43.2913+-0.2191 43.2770+-0.2648 43.2470+-0.1712 Int16Array-load-int-mul 2.0983+-0.0233 2.0823+-0.0089 ? 2.0908+-0.0293 Int16Array-to-Int32Array-set 83.6410+-1.9265 ! 87.2607+-0.4922 86.6679+-0.6782 ! definitely 1.0362x slower Int32Array-alloc-large 42.4063+-2.0213 ? 43.6125+-1.6654 43.3363+-1.6536 ? might be 1.0219x slower Int32Array-alloc-long-lived 81.3474+-0.5692 ? 81.3782+-0.6039 ? 81.8761+-1.5436 ? Int32Array-alloc 4.8204+-0.0163 4.8134+-0.1771 ? 4.8488+-0.0170 ? Int32Array-Int8Array-view-alloc 15.3437+-0.5068 ? 15.4530+-0.3158 ? 15.4755+-0.3605 ? int52-spill 10.9688+-0.1540 ! 11.4725+-0.1448 11.3023+-0.1860 ? might be 1.0304x slower Int8Array-alloc-long-lived 66.5806+-1.3756 ? 66.7178+-1.0131 66.4979+-0.9569 Int8Array-load-with-byteLength 5.5223+-0.0638 5.4716+-0.0769 5.4302+-0.0153 ^ definitely 1.0170x faster Int8Array-load 5.5142+-0.0679 5.4497+-0.0466 5.4290+-0.0210 might be 1.0157x faster integer-divide 16.8267+-0.0668 ? 16.8287+-0.0849 16.8143+-0.0600 integer-modulo 3.2098+-0.4001 ? 3.5832+-0.2317 3.1034+-0.5421 might be 1.0343x faster large-int-captured 10.8741+-0.1206 ? 11.1955+-0.2817 11.0948+-0.1936 ? might be 1.0203x slower large-int-neg 24.1534+-0.2364 24.0670+-0.2689 24.0406+-0.2548 large-int 21.5152+-0.2543 21.4630+-0.2449 21.3324+-0.3220 logical-not 6.8038+-0.1095 ? 7.0225+-0.2341 6.9162+-0.3242 ? might be 1.0165x slower lots-of-fields 16.8514+-0.1328 ? 16.9259+-0.1487 ? 16.9386+-0.1195 ? make-indexed-storage 4.4696+-0.2672 ? 4.5696+-0.1397 4.5189+-0.1188 ? might be 1.0110x slower make-rope-cse 6.3208+-0.0878 6.2726+-0.0581 ? 6.3011+-0.0454 marsaglia-larger-ints 59.4669+-0.2252 ? 59.7473+-0.4511 59.7016+-0.2230 ? marsaglia-osr-entry 31.1518+-0.2327 ? 31.1899+-0.4252 31.1571+-0.2720 ? max-boolean 3.7424+-0.0659 ? 3.7453+-0.0219 ? 3.7590+-0.0655 ? method-on-number 27.2869+-0.1527 ! 30.3867+-0.4170 ^ 27.2798+-0.1138 min-boolean 3.6280+-0.0161 ? 3.7036+-0.0647 3.7012+-0.0686 ? might be 1.0202x slower minus-boolean-double 4.7714+-0.0055 ? 4.7970+-0.0412 4.7940+-0.0537 ? minus-boolean 3.6471+-0.0155 ^ 3.6090+-0.0122 ? 3.6173+-0.0135 ^ definitely 1.0083x faster misc-strict-eq 56.1563+-0.9237 55.7197+-1.0024 ? 55.9813+-0.5035 mod-boolean-double 13.8382+-0.1310 13.7159+-0.0829 ? 13.7500+-0.1604 mod-boolean 10.5156+-0.0858 ? 10.5781+-0.1118 ? 10.5983+-0.1567 ? mul-boolean-double 5.6134+-0.0773 ? 5.6309+-0.1560 5.6069+-0.0146 mul-boolean 4.0136+-0.1679 3.9769+-0.0927 3.9692+-0.0614 might be 1.0112x faster neg-boolean 4.8571+-0.0347 ? 4.9021+-0.0504 4.8773+-0.0513 ? negative-zero-divide 0.4510+-0.0447 0.4277+-0.0041 0.4274+-0.0027 might be 1.0551x faster negative-zero-modulo 0.4309+-0.0187 0.4308+-0.0036 0.4290+-0.0040 negative-zero-negate 0.3936+-0.0016 ! 0.4010+-0.0048 0.3982+-0.0036 ? might be 1.0117x slower nested-function-parsing 48.7378+-0.9766 48.6210+-0.0906 ^ 46.7253+-0.4019 ^ definitely 1.0431x faster new-array-buffer-dead 4.0292+-0.0791 ? 4.0744+-0.0613 ? 4.1156+-0.1221 ? might be 1.0215x slower new-array-buffer-push 10.6392+-0.0161 ! 10.8348+-0.1563 10.6856+-0.1641 ? new-array-dead 14.5004+-0.2855 ? 14.7206+-0.3967 14.3301+-0.1766 might be 1.0119x faster new-array-push 7.5645+-0.0540 ! 7.8031+-0.1011 ^ 7.5240+-0.1273 number-test 4.6643+-0.0467 ? 4.6887+-0.0497 ? 4.7001+-0.0722 ? object-closure-call 9.0290+-0.0556 ! 9.3341+-0.0923 9.2085+-0.2053 ? might be 1.0199x slower object-test 5.2507+-0.1676 ^ 4.9913+-0.0403 ? 5.0469+-0.0892 might be 1.0404x faster plus-boolean-arith 3.6873+-0.0245 ? 3.7323+-0.0463 3.7129+-0.0140 ? plus-boolean-double 4.8396+-0.0526 4.8219+-0.0462 ? 4.8792+-0.1105 ? plus-boolean 3.5623+-0.0338 3.5607+-0.0164 3.5540+-0.0129 poly-chain-access-different-prototypes-simple 4.4331+-0.0672 ? 4.4724+-0.0549 4.4303+-0.0521 poly-chain-access-different-prototypes 3.6568+-0.0395 ? 3.7247+-0.1800 3.6627+-0.0069 ? poly-chain-access-simpler 4.4117+-0.0522 ? 4.4365+-0.0640 4.3964+-0.0113 poly-chain-access 2.9269+-0.2764 ? 2.9437+-0.2981 ! 3.6377+-0.0079 ! definitely 1.2429x slower poly-stricteq 83.0138+-1.8202 ! 88.5053+-1.9320 ^ 82.4360+-0.6511 polymorphic-array-call 2.1963+-0.0534 ! 2.3966+-0.0438 ^ 2.2010+-0.0421 ? polymorphic-get-by-id 4.7638+-0.0539 ? 4.7682+-0.0473 ? 4.7705+-0.0400 ? polymorphic-put-by-id 75.7460+-23.7257 ? 81.9525+-20.5136 72.9596+-26.2385 might be 1.0382x faster polymorphic-structure 24.6382+-0.1202 ! 25.2109+-0.1374 25.1830+-1.2349 ? might be 1.0221x slower polyvariant-monomorphic-get-by-id 13.3485+-0.1782 ? 13.4566+-0.1177 13.3931+-0.2269 ? proto-getter-access 13.7260+-0.2868 13.6348+-0.1569 ? 13.6823+-0.1631 put-by-id-replace-and-transition 12.6609+-0.1160 ? 12.7542+-0.1722 12.6941+-0.2183 ? put-by-id-slightly-polymorphic 4.0091+-0.0442 ? 4.0288+-0.0296 ? 4.0305+-0.0438 ? put-by-id 20.8750+-0.1850 ? 21.4504+-0.5532 21.1238+-0.4610 ? might be 1.0119x slower put-by-val-direct 0.7765+-0.0035 ? 0.7819+-0.0023 0.7797+-0.0034 ? put-by-val-large-index-blank-indexing-type 10.6413+-0.1263 ? 10.8861+-0.1764 10.7638+-0.0653 ? might be 1.0115x slower put-by-val-machine-int 4.4039+-0.1265 ? 4.6542+-0.1816 4.3188+-0.4648 might be 1.0197x faster rare-osr-exit-on-local 21.5195+-0.2736 21.4345+-0.2497 ? 21.4667+-0.1237 register-pressure-from-osr 31.5215+-0.0719 ? 31.5689+-0.0860 31.5201+-0.1745 setter 7.4683+-0.0492 7.4510+-0.1114 ? 7.4518+-0.0801 simple-activation-demo 35.3689+-0.3692 ? 35.6153+-0.1176 ^ 35.0293+-0.2585 simple-getter-access 20.0575+-0.2354 ? 20.1909+-0.3373 19.9826+-0.1658 sin-boolean 23.8727+-0.9908 ? 23.8894+-0.6502 23.5522+-0.3004 might be 1.0136x faster slow-array-profile-convergence 4.4796+-0.1670 ? 4.5494+-0.1269 4.4843+-0.2241 ? slow-convergence 4.8428+-0.0512 ? 4.8766+-0.0355 4.8143+-0.0415 sparse-conditional 1.4931+-0.0121 ! 1.5376+-0.0149 ^ 1.4909+-0.0163 splice-to-remove 26.9743+-0.2990 ? 27.5542+-0.3146 ? 27.6664+-0.8291 ? might be 1.0257x slower string-char-code-at 23.3577+-0.0801 ? 23.4648+-0.1069 23.3784+-0.1480 ? string-concat-object 3.2101+-0.0399 ! 3.3333+-0.0257 ^ 3.1999+-0.0086 string-concat-pair-object 3.0898+-0.0870 ! 3.2934+-0.0384 ^ 3.1257+-0.0419 ? might be 1.0116x slower string-concat-pair-simple 18.3832+-0.2159 ? 18.8006+-0.3286 18.7361+-0.1357 ! definitely 1.0192x slower string-concat-simple 18.4762+-0.3861 ? 18.6572+-0.1582 ? 18.7698+-0.3613 ? might be 1.0159x slower string-cons-repeat 11.9176+-0.0776 ! 12.1306+-0.0707 ^ 11.9970+-0.0411 ? string-cons-tower 11.0151+-0.3434 ? 11.1670+-0.0449 ^ 11.0053+-0.0612 string-equality 26.2323+-0.1525 ? 26.3252+-0.4308 26.1849+-0.2291 string-get-by-val-big-char 13.7052+-0.2454 ! 14.1177+-0.1660 14.0606+-0.3665 ? might be 1.0259x slower string-get-by-val-out-of-bounds-insane 5.9594+-0.1215 ? 6.0492+-0.0513 ^ 5.9201+-0.0449 string-get-by-val-out-of-bounds 7.1322+-0.1658 7.1187+-0.1002 7.0802+-0.1570 string-get-by-val 5.5895+-0.0758 5.5475+-0.0139 5.5433+-0.0210 string-hash 2.9136+-0.0587 ? 2.9716+-0.0227 ^ 2.9225+-0.0061 ? string-long-ident-equality 21.2376+-0.0928 ? 21.3842+-0.1900 21.2520+-0.0897 ? string-repeat-arith 49.6843+-0.6231 ? 52.4249+-5.0590 49.4865+-0.2965 string-sub 96.8472+-1.3413 ! 101.5924+-1.3538 ^ 94.6843+-0.8454 might be 1.0228x faster string-test 4.6760+-0.0497 ? 4.6969+-0.0507 ? 4.7067+-0.0736 ? string-var-equality 52.0219+-0.0636 ? 52.0298+-0.1372 ? 52.0672+-0.1870 ? structure-hoist-over-transitions 3.8951+-0.0793 ? 3.9662+-0.0475 3.8890+-0.0839 substring-concat-weird 63.3658+-1.3428 ? 63.7222+-0.5520 63.2126+-0.3641 substring-concat 66.1567+-0.4491 ? 66.7657+-0.2659 66.7515+-0.7620 ? substring 74.1842+-0.3242 ? 75.0788+-1.1467 74.8821+-0.5166 ? switch-char-constant 3.6839+-0.0261 ? 3.7617+-0.0958 3.6917+-0.0275 ? switch-char 9.2883+-0.1206 ? 9.3112+-0.0542 ? 9.3287+-0.1672 ? switch-constant 11.4915+-0.1947 ? 11.6740+-0.1444 11.6553+-0.1194 ? might be 1.0143x slower switch-string-basic-big-var 25.2930+-1.7575 ? 28.4455+-1.4275 ^ 25.1061+-1.7117 switch-string-basic-big 35.8927+-0.9944 33.6920+-3.2047 ? 34.2510+-2.4826 might be 1.0479x faster switch-string-basic-var 32.7207+-1.3018 32.1378+-0.6930 31.6393+-1.7154 might be 1.0342x faster switch-string-basic 30.4102+-2.2741 ? 31.8029+-2.0485 31.2834+-2.3908 ? might be 1.0287x slower switch-string-big-length-tower-var 29.8733+-0.1580 ? 30.0264+-0.1825 29.9653+-0.2019 ? switch-string-length-tower-var 24.0283+-0.1080 23.9895+-0.1379 23.9379+-0.1827 switch-string-length-tower 17.3883+-0.0926 ? 17.4363+-0.1308 17.3367+-0.0240 switch-string-short 18.2707+-2.2093 17.4141+-0.0504 ? 17.4950+-0.1288 might be 1.0443x faster switch 15.9101+-0.1820 15.8076+-0.2261 ? 15.8655+-0.1068 tear-off-arguments-simple 2.3318+-0.0110 ! 2.5035+-0.0435 ^ 2.3370+-0.0075 ? tear-off-arguments 3.9292+-0.0630 ! 4.0226+-0.0237 ^ 3.8708+-0.0525 might be 1.0151x faster temporal-structure 20.3433+-0.0847 ^ 20.1624+-0.0896 ? 20.2465+-0.1330 to-int32-boolean 24.5740+-0.0572 ? 24.6211+-0.0874 ? 24.6845+-0.1985 ? undefined-test 4.8302+-0.0227 ? 4.8983+-0.0773 4.8250+-0.0191 unprofiled-licm 31.4245+-0.2250 31.2332+-0.4604 ? 31.3657+-0.1891 weird-inlining-const-prop 2.6377+-0.0304 ! 2.8759+-0.0455 2.7970+-0.1022 ! definitely 1.0604x slower <arithmetic> 21.8187+-0.1167 ! 22.3675+-0.0747 ? 22.5325+-0.1116 ! definitely 1.0327x slower <geometric> * 11.0407+-0.0322 ! 11.3136+-0.0194 ^ 11.1981+-0.0313 ! definitely 1.0143x slower <harmonic> 5.4796+-0.0241 ! 5.5966+-0.0067 ^ 5.5079+-0.0167 ? might be 1.0052x slower TipOfTree OldPolyInline PolyInline PolyInline v. TipOfTree AsmBench: bigfib.cpp 801.0834+-4.3416 798.4468+-5.1196 ? 801.2347+-7.4501 ? cray.c 798.4033+-6.0801 793.7072+-1.7674 ? 793.9558+-5.1047 dry.c 777.6230+-11.9969 ? 784.8244+-8.6547 ^ 768.0978+-0.5798 might be 1.0124x faster FloatMM.c 1148.4903+-0.4827 1147.9810+-0.7802 ? 1151.7949+-8.2028 ? gcc-loops.cpp 7572.2552+-36.6993 7564.2115+-7.4664 7554.8780+-17.8145 n-body.c 2009.4479+-2.3292 ? 2011.8420+-11.3519 2006.8976+-1.0215 Quicksort.c 703.5504+-18.4446 692.0469+-6.3676 ? 692.1325+-9.9601 might be 1.0165x faster stepanov_container.cpp 5832.1202+-10.2847 ? 5845.3951+-7.2404 5833.5895+-15.5882 ? Towers.c 491.0273+-0.6002 ^ 482.5228+-0.3513 ! 484.4304+-1.3997 ^ definitely 1.0136x faster <arithmetic> 2237.1112+-3.4618 2235.6642+-3.3377 2231.8901+-3.7253 might be 1.0023x faster <geometric> * 1374.4525+-3.6213 1369.6198+-3.4950 1367.1694+-3.7232 might be 1.0053x faster <harmonic> 1009.2516+-3.9546 1002.7209+-3.0170 1001.2034+-3.6259 ^ definitely 1.0080x faster TipOfTree OldPolyInline PolyInline PolyInline v. TipOfTree All benchmarks: <arithmetic> 154.8285+-0.2870 ! 156.2946+-0.2997 ^ 155.7217+-0.2086 ! definitely 1.0058x slower <geometric> 17.9372+-0.0425 ! 18.3193+-0.0215 ^ 18.1331+-0.0367 ! definitely 1.0109x slower <harmonic> 4.9141+-0.0227 ^ 4.8711+-0.0067 ^ 4.8210+-0.0182 ^ definitely 1.0193x faster TipOfTree OldPolyInline PolyInline PolyInline v. TipOfTree Geomean of preferred means: <scaled-result> 79.4350+-0.1008 ! 80.8472+-0.1551 ^ 80.1155+-0.1185 ! definitely 1.0086x slower Created attachment 237040 [details]
the wrong approach, for real
For real, this is the approach that had used GCD. It's not as good as a purely serial approach. I'm still going to investigate a concurrent approach, but without using GCD.
OK - it's starting to look like I've got something that works and that is a speed-up on everything. I'll upload shortly. Created attachment 237053 [details]
the patch
Attachment 237053 [details] did not pass style-queue:
ERROR: Source/WTF/wtf/OwnPtr.h:83: The parameter name "args" adds no information, so it should be removed. [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/bytecode/CallEdgeProfile.cpp:29: Alphabetical sorting problem. [build/include_order] [4]
ERROR: Source/JavaScriptCore/bytecode/CallEdgeProfile.cpp:70: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/bytecode/CallEdgeProfile.cpp:132: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3]
ERROR: Source/WTF/wtf/Spectrum.h:114: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/dfg/DFGLazyJSValue.h:99: The parameter name "kind" adds no information, so it should be removed. [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/bytecode/CallEdge.h:38: The parameter name "count" adds no information, so it should be removed. [readability/parameter_name] [5]
ERROR: Source/JavaScriptCore/bytecode/CallVariant.h:142: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/dfg/DFGNode.h:182: Should be indented on a separate line, with the colon or comma first on that line. [whitespace/indent] [4]
ERROR: Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:1073: An else if statement should be written as an if statement when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4]
Total errors found: 10 in 73 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Performance reports on two different machines. Both show net speed-up if you consider the benchmarks that we care about the most. Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, and AsmBench on dethklok (MacBookPro9,1). VMs tested: "NoEdge" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r172859) "OriginalEdge" at /Volumes/Data/pizlo/quartary/OpenSource/WebKitBuild/Release/jsc (r172859) 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. NoEdge OriginalEdge SunSpider: 3d-cube 4.8473+-0.0947 4.7944+-0.1150 might be 1.0111x faster 3d-morph 5.8644+-0.1277 ? 5.9585+-0.1790 ? might be 1.0160x slower 3d-raytrace 6.1573+-0.1062 ? 6.3791+-0.2963 ? might be 1.0360x slower access-binary-trees 1.9550+-0.2190 1.9016+-0.2246 might be 1.0281x faster access-fannkuch 5.6380+-0.0583 ? 5.9061+-0.5882 ? might be 1.0476x slower access-nbody 2.7178+-0.0331 ? 2.7410+-0.0444 ? access-nsieve 3.6281+-0.2108 3.4740+-0.0909 might be 1.0444x faster bitops-3bit-bits-in-byte 1.6058+-0.1390 ^ 1.4386+-0.0210 ^ definitely 1.1162x faster bitops-bits-in-byte 3.3300+-0.0833 ? 3.3589+-0.0783 ? bitops-bitwise-and 2.0749+-0.0660 ? 2.1060+-0.0848 ? might be 1.0150x slower bitops-nsieve-bits 3.6661+-0.0843 3.5808+-0.0712 might be 1.0238x faster controlflow-recursive 2.0715+-0.3358 2.0191+-0.1495 might be 1.0260x faster crypto-aes 3.9376+-0.0707 3.9072+-0.0963 crypto-md5 2.2342+-0.0829 ? 2.2422+-0.0560 ? crypto-sha1 2.5750+-0.2035 2.5121+-0.2493 might be 1.0250x faster date-format-tofte 9.0503+-0.3890 8.8080+-0.2753 might be 1.0275x faster date-format-xparb 5.2533+-0.2041 ? 5.3968+-0.1412 ? might be 1.0273x slower math-cordic 3.1400+-0.3674 2.9217+-0.0946 might be 1.0747x faster math-partial-sums 5.0568+-0.0919 5.0260+-0.1388 math-spectral-norm 1.9373+-0.2209 1.8276+-0.1143 might be 1.0600x faster regexp-dna 8.0685+-1.5339 7.6910+-1.2203 might be 1.0491x faster string-base64 4.4906+-0.7532 4.4093+-0.7236 might be 1.0184x faster string-fasta 6.7231+-0.6331 6.5398+-0.2697 might be 1.0280x faster string-tagcloud 9.7680+-0.2805 9.4676+-0.1879 might be 1.0317x faster string-unpack-code 21.3592+-1.8620 20.8679+-0.3843 might be 1.0235x faster string-validate-input 4.7307+-0.2053 4.7252+-0.0773 <arithmetic> * 5.0723+-0.1102 5.0000+-0.0392 might be 1.0145x faster <geometric> 4.1539+-0.0611 4.0900+-0.0443 might be 1.0156x faster <harmonic> 3.5392+-0.0745 3.4643+-0.0461 might be 1.0216x faster NoEdge OriginalEdge LongSpider: 3d-cube 842.5684+-5.4784 ^ 819.3873+-6.3395 ^ definitely 1.0283x faster 3d-morph 1520.5031+-4.7924 1517.3269+-3.9255 3d-raytrace 785.0220+-6.0387 ? 789.6619+-11.3813 ? access-binary-trees 1047.9515+-7.4059 1044.2719+-6.1026 access-fannkuch 318.2774+-5.7856 317.3702+-6.1373 access-nbody 629.6464+-1.8397 ? 632.7269+-5.5777 ? access-nsieve 974.7134+-5.2599 969.1644+-12.6602 bitops-3bit-bits-in-byte 45.2803+-1.3536 45.1784+-1.8556 bitops-bits-in-byte 93.8600+-1.3513 ! 103.3273+-3.5802 ! definitely 1.1009x slower bitops-nsieve-bits 716.7527+-2.4818 ? 724.6387+-7.1358 ? might be 1.0110x slower controlflow-recursive 500.6636+-8.6350 ^ 476.1738+-4.0576 ^ definitely 1.0514x faster crypto-aes 721.0531+-9.2317 705.4679+-7.5017 might be 1.0221x faster crypto-md5 613.8013+-6.6029 ? 629.8641+-14.9234 ? might be 1.0262x slower crypto-sha1 713.0011+-3.0492 ! 724.1548+-5.2631 ! definitely 1.0156x slower date-format-tofte 782.9290+-20.6620 760.5611+-17.1576 might be 1.0294x faster date-format-xparb 828.8994+-21.7037 ? 839.8141+-19.0623 ? might be 1.0132x slower math-cordic 595.7380+-1.9959 ? 596.2290+-1.9214 ? math-partial-sums 546.2128+-1.5339 ? 546.9527+-1.8089 ? math-spectral-norm 565.5413+-2.4491 ? 565.5567+-2.8546 ? string-base64 382.9948+-4.3472 381.9809+-7.3070 string-fasta 435.2933+-3.1558 ? 442.9768+-48.6434 ? might be 1.0177x slower string-tagcloud 219.8026+-3.3361 ? 221.5259+-2.5344 ? <arithmetic> 630.9321+-1.8274 629.7414+-1.6952 might be 1.0019x faster <geometric> * 513.7445+-0.5955 ? 514.8421+-1.8951 ? might be 1.0021x slower <harmonic> 325.3776+-3.0620 ? 329.5169+-4.1099 ? might be 1.0127x slower NoEdge OriginalEdge V8Spider: crypto 59.1289+-6.1527 54.1401+-2.9165 might be 1.0921x faster deltablue 84.7660+-2.9282 ! 101.2773+-2.8751 ! definitely 1.1948x slower earley-boyer 44.1268+-2.5555 43.0491+-1.0239 might be 1.0250x faster raytrace 32.9248+-2.1110 ? 34.3264+-2.6881 ? might be 1.0426x slower regexp 64.6245+-2.8286 63.6263+-2.0760 might be 1.0157x faster richards 75.7806+-1.6086 ! 86.0550+-3.3720 ! definitely 1.1356x slower splay 33.5804+-0.6853 33.0387+-0.9394 might be 1.0164x faster <arithmetic> 56.4189+-0.8175 ! 59.3590+-1.0394 ! definitely 1.0521x slower <geometric> * 53.0864+-0.7444 ! 54.6647+-0.6365 ! definitely 1.0297x slower <harmonic> 49.8206+-0.7352 ? 50.5271+-0.4164 ? might be 1.0142x slower NoEdge OriginalEdge Octane: encrypt 0.24180+-0.00272 ^ 0.23444+-0.00114 ^ definitely 1.0314x faster decrypt 4.32135+-0.02635 ^ 4.11357+-0.02466 ^ definitely 1.0505x faster deltablue x2 0.27267+-0.00255 ^ 0.21119+-0.00229 ^ definitely 1.2911x faster earley 0.73779+-0.00525 ! 0.74956+-0.00641 ! definitely 1.0160x slower boyer 5.33287+-0.02516 5.32994+-0.05543 navier-stokes x2 5.16838+-0.04323 ? 5.18000+-0.01738 ? raytrace x2 1.62509+-0.00884 ^ 1.59093+-0.01447 ^ definitely 1.0215x faster richards x2 0.14222+-0.00146 ^ 0.13222+-0.00166 ^ definitely 1.0756x faster splay x2 0.39290+-0.00179 ^ 0.38686+-0.00338 ^ definitely 1.0156x faster regexp x2 35.56106+-0.35218 ? 35.56423+-0.24496 ? pdfjs x2 52.18572+-0.19361 ? 52.92099+-1.53004 ? might be 1.0141x slower mandreel x2 52.53030+-0.71364 ? 52.55126+-0.57848 ? gbemu x2 40.41020+-0.39611 ! 41.92264+-0.14305 ! definitely 1.0374x slower closure 0.57280+-0.00358 0.56464+-0.00514 might be 1.0144x faster jquery 7.16769+-0.03484 ^ 7.03735+-0.02678 ^ definitely 1.0185x faster box2d x2 13.77945+-0.12152 ? 13.88613+-0.17012 ? zlib x2 470.55471+-21.01013 ? 478.68171+-18.73276 ? might be 1.0173x slower typescript x2 856.15588+-9.00129 ? 874.67851+-11.91900 ? might be 1.0216x slower <arithmetic> 102.53105+-1.23219 ? 104.44810+-1.81418 ? might be 1.0187x slower <geometric> * 7.42466+-0.02169 ^ 7.27067+-0.03278 ^ definitely 1.0212x faster <harmonic> 0.82790+-0.00254 ^ 0.75594+-0.00342 ^ definitely 1.0952x faster NoEdge OriginalEdge Kraken: ai-astar 268.204+-1.402 ? 269.264+-2.056 ? audio-beat-detection 102.855+-1.243 102.425+-0.615 audio-dft 158.867+-4.006 158.451+-2.367 audio-fft 76.492+-0.747 ? 76.632+-1.659 ? audio-oscillator 243.841+-2.223 ^ 235.773+-2.250 ^ definitely 1.0342x faster imaging-darkroom 179.972+-1.761 ? 181.559+-5.048 ? imaging-desaturate 61.440+-1.387 ? 61.745+-1.813 ? imaging-gaussian-blur 107.652+-1.326 105.845+-0.845 might be 1.0171x faster json-parse-financial 44.688+-1.196 ? 46.611+-1.655 ? might be 1.0430x slower json-stringify-tinderbox 63.690+-2.268 ? 63.881+-2.049 ? stanford-crypto-aes 58.620+-0.595 58.586+-0.835 stanford-crypto-ccm 54.828+-6.911 ? 56.654+-5.999 ? might be 1.0333x slower stanford-crypto-pbkdf2 172.781+-2.815 170.348+-2.326 might be 1.0143x faster stanford-crypto-sha256-iterative 54.186+-1.816 ? 54.745+-1.933 ? might be 1.0103x slower <arithmetic> * 117.723+-0.601 117.323+-0.487 might be 1.0034x faster <geometric> 98.651+-0.512 ? 98.910+-0.587 ? might be 1.0026x slower <harmonic> 84.371+-0.650 ? 85.151+-0.849 ? might be 1.0092x slower NoEdge OriginalEdge JSRegress: adapt-to-double-divide 15.9111+-0.3794 15.4702+-0.1769 might be 1.0285x faster aliased-arguments-getbyval 0.8621+-0.1134 0.7594+-0.0111 might be 1.1352x faster allocate-big-object 2.2462+-0.1378 2.1949+-0.0361 might be 1.0234x faster arity-mismatch-inlining 0.7242+-0.0304 ? 0.7278+-0.0240 ? array-access-polymorphic-structure 6.7087+-0.8464 ? 7.0485+-1.2418 ? might be 1.0507x slower array-nonarray-polymorhpic-access 35.4830+-0.4827 34.9902+-0.5444 might be 1.0141x faster array-prototype-every 75.6961+-3.9991 73.9722+-1.7908 might be 1.0233x faster array-prototype-forEach 74.0184+-1.0229 ? 74.5172+-2.0256 ? array-prototype-map 88.4963+-1.6784 ? 88.6663+-1.2885 ? array-prototype-some 75.1981+-3.4914 74.1090+-1.4905 might be 1.0147x faster array-splice-contiguous 39.9036+-1.5865 ? 41.1190+-2.2504 ? might be 1.0305x slower array-with-double-add 4.1946+-0.0772 ? 4.2574+-0.0634 ? might be 1.0150x slower array-with-double-increment 3.1049+-0.1840 ? 3.1573+-0.1417 ? might be 1.0169x slower array-with-double-mul-add 4.7375+-0.0480 4.6980+-0.0617 array-with-double-sum 3.1662+-0.1059 ? 3.2035+-0.1582 ? might be 1.0118x slower array-with-int32-add-sub 7.1881+-0.1429 7.1535+-0.0247 array-with-int32-or-double-sum 3.2732+-0.0985 3.1968+-0.0909 might be 1.0239x faster ArrayBuffer-DataView-alloc-large-long-lived 69.5790+-3.5262 ? 70.1785+-3.3918 ? ArrayBuffer-DataView-alloc-long-lived 20.9268+-2.2182 ? 21.2425+-1.8890 ? might be 1.0151x slower ArrayBuffer-Int32Array-byteOffset 3.2653+-0.0377 ? 3.3121+-0.0566 ? might be 1.0143x slower ArrayBuffer-Int8Array-alloc-large-long-lived 69.8014+-2.8434 ? 69.8719+-1.4509 ? ArrayBuffer-Int8Array-alloc-long-lived-buffer 31.8586+-1.9146 30.6895+-0.5594 might be 1.0381x faster ArrayBuffer-Int8Array-alloc-long-lived 18.7221+-0.2388 ? 19.5688+-1.5233 ? might be 1.0452x slower ArrayBuffer-Int8Array-alloc 18.3263+-2.1856 17.9643+-1.8646 might be 1.0202x faster asmjs_bool_bug 7.8994+-1.3570 7.2526+-0.1980 might be 1.0892x faster assign-custom-setter-polymorphic 2.9304+-0.0292 ? 3.0886+-0.1924 ? might be 1.0540x slower assign-custom-setter 4.1167+-0.0826 ? 4.2771+-0.0887 ? might be 1.0390x slower basic-set 9.5746+-0.2563 ? 9.9709+-0.7458 ? might be 1.0414x slower big-int-mul 3.7051+-0.2071 ? 3.9315+-0.0989 ? might be 1.0611x slower boolean-test 2.9324+-0.1512 2.8737+-0.1060 might be 1.0204x faster branch-fold 3.4703+-0.0202 ? 3.5655+-0.0910 ? might be 1.0274x slower by-val-generic 8.1034+-0.3149 7.9562+-0.2035 might be 1.0185x faster call-spread-apply 15.8373+-1.5391 ^ 14.0627+-0.1449 ^ definitely 1.1262x faster call-spread-call 6.5248+-1.0521 5.9438+-0.1489 might be 1.0978x faster captured-assignments 0.4024+-0.0192 0.3993+-0.0171 cast-int-to-double 5.2120+-0.4517 5.0604+-0.0951 might be 1.0299x faster cell-argument 7.6795+-0.1549 ? 7.6952+-0.2505 ? cfg-simplify 2.7973+-0.0675 2.7950+-0.0832 chain-getter-access 8.5792+-0.2557 8.4199+-0.1241 might be 1.0189x faster cmpeq-obj-to-obj-other 8.7150+-0.6359 ? 8.9523+-0.3819 ? might be 1.0272x slower constant-test 4.7135+-0.0420 4.6895+-0.0396 DataView-custom-properties 72.8916+-1.9729 ? 72.9229+-2.4997 ? delay-tear-off-arguments-strictmode 2.4387+-0.0392 ? 2.5474+-0.2668 ? might be 1.0446x slower destructuring-arguments 5.0554+-0.2161 ? 5.0835+-0.1511 ? destructuring-swap 4.7841+-0.0539 ? 4.9194+-0.2878 ? might be 1.0283x slower direct-arguments-getbyval 0.8061+-0.1090 0.7881+-0.0413 might be 1.0228x faster double-get-by-val-out-of-bounds 4.5018+-0.1201 4.4972+-0.1434 double-pollution-getbyval 8.6908+-0.1331 ? 8.7819+-0.1349 ? might be 1.0105x slower double-pollution-putbyoffset 4.1869+-0.3003 4.1423+-0.4187 might be 1.0108x faster double-to-int32-typed-array-no-inline 2.1236+-0.1380 2.0773+-0.1395 might be 1.0223x faster double-to-int32-typed-array 1.6457+-0.0163 ? 1.7067+-0.1082 ? might be 1.0371x slower double-to-uint32-typed-array-no-inline 2.2726+-0.2554 ? 2.4224+-0.2973 ? might be 1.0659x slower double-to-uint32-typed-array 1.8773+-0.1858 1.8276+-0.0998 might be 1.0272x faster empty-string-plus-int 6.8245+-0.1863 ? 6.9182+-0.3005 ? might be 1.0137x slower emscripten-cube2hash 37.1687+-1.7054 37.0793+-1.6314 external-arguments-getbyval 1.3024+-0.0599 1.2797+-0.0251 might be 1.0177x faster external-arguments-putbyval 1.9347+-0.0804 ? 1.9585+-0.1900 ? might be 1.0123x slower fixed-typed-array-storage-var-index 1.1995+-0.2246 1.1874+-0.0808 might be 1.0102x faster fixed-typed-array-storage 0.8004+-0.0254 ? 0.8008+-0.0396 ? Float32Array-matrix-mult 4.2402+-0.1553 4.1408+-0.0512 might be 1.0240x faster Float32Array-to-Float64Array-set 53.7261+-0.4866 51.1899+-2.0759 might be 1.0495x faster Float64Array-alloc-long-lived 65.4648+-1.4425 65.1720+-1.2079 Float64Array-to-Int16Array-set 68.6312+-2.4850 ! 77.6664+-2.8946 ! definitely 1.1316x slower fold-double-to-int 15.2721+-1.2254 ? 15.3154+-1.3821 ? fold-get-by-id-to-multi-get-by-offset-rare-int 13.7276+-0.1743 ! 16.7234+-0.6794 ! definitely 1.2182x slower fold-get-by-id-to-multi-get-by-offset 13.0972+-0.3694 ! 15.3417+-0.3027 ! definitely 1.1714x slower fold-multi-get-by-offset-to-get-by-offset 9.9243+-1.3441 ! 12.9417+-0.9058 ! definitely 1.3040x slower fold-multi-get-by-offset-to-poly-get-by-offset 10.7543+-0.9525 ! 12.9153+-0.5390 ! definitely 1.2009x slower fold-multi-put-by-offset-to-poly-put-by-offset 11.1685+-1.7139 ? 13.3257+-1.3338 ? might be 1.1932x slower fold-multi-put-by-offset-to-put-by-offset 9.9705+-1.3328 ? 11.3238+-0.6811 ? might be 1.1357x slower fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 13.0063+-1.5383 ? 15.3808+-1.1142 ? might be 1.1826x slower fold-put-by-id-to-multi-put-by-offset 14.5850+-1.4851 ! 17.0713+-0.5377 ! definitely 1.1705x slower fold-put-structure 9.0202+-1.4336 ? 11.9835+-1.5647 ? might be 1.3285x slower for-of-iterate-array-entries 6.5238+-0.6746 ^ 5.4028+-0.1032 ^ definitely 1.2075x faster for-of-iterate-array-keys 2.6152+-0.5891 ? 2.7003+-0.1956 ? might be 1.0325x slower for-of-iterate-array-values 2.1786+-0.0832 ? 2.2372+-0.1414 ? might be 1.0269x slower fround 16.8982+-0.6107 ? 16.9528+-0.6850 ? ftl-library-inlining-dataview 77.3541+-3.2728 74.9972+-7.2996 might be 1.0314x faster ftl-library-inlining 85.4471+-24.8381 76.5651+-1.7014 might be 1.1160x faster function-dot-apply 1.3936+-0.3093 1.2738+-0.0818 might be 1.0940x faster function-test 3.2131+-0.1507 ? 3.2445+-0.0373 ? function-with-eval 62.2939+-0.8023 ? 65.5090+-3.3291 ? might be 1.0516x slower gcse-poly-get-less-obvious 19.3448+-1.4976 19.1231+-1.1029 might be 1.0116x faster gcse-poly-get 20.3541+-1.8252 ? 21.6840+-1.5183 ? might be 1.0653x slower gcse 4.6964+-1.2257 4.2856+-0.1788 might be 1.0958x faster get-by-id-bimorphic-check-structure-elimination-simple 2.6061+-0.0825 2.5830+-0.0350 get-by-id-bimorphic-check-structure-elimination 6.3439+-0.0930 ? 6.6302+-0.8366 ? might be 1.0451x slower get-by-id-chain-from-try-block 6.6023+-1.2225 5.7734+-0.1104 might be 1.1436x faster get-by-id-check-structure-elimination 5.5341+-1.1783 5.0542+-0.0145 might be 1.0949x faster get-by-id-proto-or-self 15.8207+-0.8941 ? 16.5671+-1.4006 ? might be 1.0472x slower get-by-id-quadmorphic-check-structure-elimination-simple 2.7938+-0.0426 ? 2.8753+-0.2118 ? might be 1.0292x slower get-by-id-self-or-proto 16.4991+-0.8380 ? 16.5658+-1.2540 ? get-by-val-out-of-bounds 4.2852+-0.0358 ? 4.2942+-0.1340 ? get_callee_monomorphic 3.5390+-0.2195 3.5242+-0.1881 get_callee_polymorphic 3.5861+-0.4303 3.4099+-0.2039 might be 1.0517x faster getter-no-activation 4.8639+-0.2115 4.8145+-0.2318 might be 1.0103x faster getter-richards 110.5074+-4.8510 ! 119.5030+-3.9497 ! definitely 1.0814x slower getter 5.2279+-0.4467 4.9337+-0.1508 might be 1.0596x faster global-var-const-infer-fire-from-opt 0.8542+-0.0528 0.8513+-0.0689 global-var-const-infer 0.7503+-0.0476 0.7448+-0.0769 HashMap-put-get-iterate-keys 25.8888+-0.4146 25.8401+-0.2909 HashMap-put-get-iterate 26.0439+-0.7772 25.7233+-0.4655 might be 1.0125x faster HashMap-string-put-get-iterate 30.1717+-1.3682 ? 30.5080+-2.1760 ? might be 1.0111x slower hoist-make-rope 10.6191+-1.0045 ? 11.2228+-0.7758 ? might be 1.0568x slower hoist-poly-check-structure-effectful-loop 4.9403+-0.2043 4.8663+-0.0317 might be 1.0152x faster hoist-poly-check-structure 3.9851+-0.5505 3.7021+-0.0620 might be 1.0765x faster imul-double-only 6.2677+-0.4827 ? 7.0034+-1.0197 ? might be 1.1174x slower imul-int-only 8.4528+-0.3082 8.3773+-0.1552 imul-mixed 6.5246+-0.9244 6.1228+-0.0462 might be 1.0656x faster in-four-cases 18.6560+-0.3046 ? 19.1302+-1.0203 ? might be 1.0254x slower in-one-case-false 9.7225+-0.1670 9.6523+-0.0895 in-one-case-true 9.8327+-0.4384 9.6627+-0.1184 might be 1.0176x faster in-two-cases 10.1604+-0.3205 9.9874+-0.0396 might be 1.0173x faster indexed-properties-in-objects 2.7975+-0.0979 ? 2.8376+-0.2024 ? might be 1.0143x slower infer-closure-const-then-mov-no-inline 3.4567+-0.3130 ? 3.4683+-0.1833 ? infer-closure-const-then-mov 21.2340+-1.6698 21.1328+-1.8970 infer-closure-const-then-put-to-scope-no-inline 11.3818+-1.5609 10.6845+-0.1597 might be 1.0653x faster infer-closure-const-then-put-to-scope 23.1054+-1.7867 22.2324+-0.1961 might be 1.0393x faster infer-closure-const-then-reenter-no-inline 49.1418+-1.8046 ? 49.2811+-1.5624 ? infer-closure-const-then-reenter 23.4318+-1.6904 22.1821+-1.3155 might be 1.0563x faster infer-constant-global-property 3.4155+-0.1272 ? 3.4680+-0.1178 ? might be 1.0154x slower infer-constant-property 2.5532+-0.0242 2.5520+-0.0489 infer-one-time-closure-ten-vars 11.3206+-0.5638 ? 11.4216+-0.3024 ? infer-one-time-closure-two-vars 11.6942+-1.4416 ? 11.7767+-1.6861 ? infer-one-time-closure 10.9237+-0.2231 ? 11.2741+-1.0375 ? might be 1.0321x slower infer-one-time-deep-closure 21.4851+-1.5776 19.6698+-0.3563 might be 1.0923x faster inline-arguments-access 1.6934+-0.7321 1.2264+-0.0196 might be 1.3808x faster inline-arguments-aliased-access 1.6298+-0.2979 1.5596+-0.2434 might be 1.0450x faster inline-arguments-local-escape 12.4895+-1.2815 12.4754+-1.1180 inline-get-scoped-var 4.5354+-0.1123 ? 4.6167+-0.3023 ? might be 1.0179x slower inlined-put-by-id-transition 9.5757+-0.4593 9.1686+-0.4597 might be 1.0444x faster int-or-other-abs-then-get-by-val 5.0558+-0.6787 4.6918+-0.0407 might be 1.0776x faster int-or-other-abs-zero-then-get-by-val 17.8658+-0.8633 17.1224+-0.8024 might be 1.0434x faster int-or-other-add-then-get-by-val 4.1244+-0.0332 ? 4.3808+-0.6842 ? might be 1.0622x slower int-or-other-add 5.0975+-0.2398 ? 5.2316+-0.5137 ? might be 1.0263x slower int-or-other-div-then-get-by-val 4.1434+-0.0275 ? 4.5543+-0.6530 ? might be 1.0992x slower int-or-other-max-then-get-by-val 4.7247+-0.6093 4.3715+-0.2153 might be 1.0808x faster int-or-other-min-then-get-by-val 4.4168+-0.3083 ? 4.6044+-0.8284 ? might be 1.0425x slower int-or-other-mod-then-get-by-val 3.8519+-0.1236 ? 4.0944+-0.7097 ? might be 1.0630x slower int-or-other-mul-then-get-by-val 3.7355+-0.0173 ? 4.0438+-0.8224 ? might be 1.0825x slower int-or-other-neg-then-get-by-val 4.5945+-0.1655 ? 4.6135+-0.1305 ? int-or-other-neg-zero-then-get-by-val 18.2699+-1.7508 17.2702+-1.4201 might be 1.0579x faster int-or-other-sub-then-get-by-val 4.1020+-0.0152 ? 4.1439+-0.0968 ? might be 1.0102x slower int-or-other-sub 3.9244+-0.6470 3.5462+-0.4530 might be 1.1066x faster int-overflow-local 4.1763+-0.1527 4.1477+-0.0530 Int16Array-alloc-long-lived 48.3547+-1.2463 ? 49.4706+-1.9856 ? might be 1.0231x slower Int16Array-bubble-sort-with-byteLength 20.3020+-0.3422 20.2823+-0.1688 Int16Array-bubble-sort 23.3156+-1.8187 21.2502+-0.4455 might be 1.0972x faster Int16Array-load-int-mul 1.3829+-0.0426 1.3620+-0.0305 might be 1.0153x faster Int16Array-to-Int32Array-set 52.4358+-1.6477 ! 57.8646+-2.3241 ! definitely 1.1035x slower Int32Array-alloc-large 24.3643+-1.0646 ? 24.9952+-1.5593 ? might be 1.0259x slower Int32Array-alloc-long-lived 52.6765+-0.8567 ? 53.6390+-2.0571 ? might be 1.0183x slower Int32Array-alloc 3.1096+-0.1966 2.9393+-0.0523 might be 1.0579x faster Int32Array-Int8Array-view-alloc 9.8758+-0.8232 9.4195+-0.3729 might be 1.0484x faster int52-spill 7.3663+-0.4578 7.2469+-0.2739 might be 1.0165x faster Int8Array-alloc-long-lived 45.1335+-1.5725 44.5667+-1.3823 might be 1.0127x faster Int8Array-load-with-byteLength 3.2445+-0.0181 3.2413+-0.0496 Int8Array-load 3.2509+-0.0614 ? 3.3375+-0.1489 ? might be 1.0266x slower integer-divide 11.9307+-1.1483 ? 12.0754+-1.2857 ? might be 1.0121x slower integer-modulo 1.9662+-0.0202 ? 2.0782+-0.3246 ? might be 1.0570x slower large-int-captured 6.2275+-0.5615 ? 6.7668+-0.8904 ? might be 1.0866x slower large-int-neg 16.7774+-1.5628 ? 16.8585+-1.6128 ? large-int 14.8174+-0.8984 14.5152+-0.2137 might be 1.0208x faster logical-not 4.5780+-0.5774 4.3991+-0.1087 might be 1.0407x faster lots-of-fields 9.1056+-0.1623 ? 9.5751+-0.5806 ? might be 1.0516x slower make-indexed-storage 2.9815+-0.2547 2.8788+-0.3443 might be 1.0357x faster make-rope-cse 4.2918+-0.4433 ? 4.7550+-0.5868 ? might be 1.1079x slower marsaglia-larger-ints 38.9830+-2.2262 37.2422+-1.0770 might be 1.0467x faster marsaglia-osr-entry 22.1200+-0.6642 ? 22.7126+-1.7192 ? might be 1.0268x slower method-on-number 18.1733+-1.5487 17.4480+-0.1897 might be 1.0416x faster misc-strict-eq 34.5827+-0.2961 34.5660+-1.0912 negative-zero-divide 0.2840+-0.0107 ? 0.2914+-0.0084 ? might be 1.0259x slower negative-zero-modulo 0.2907+-0.0075 ? 0.2935+-0.0136 ? negative-zero-negate 0.2782+-0.0123 ? 0.2872+-0.0425 ? might be 1.0325x slower nested-function-parsing 26.6517+-0.1572 ? 27.3912+-1.5352 ? might be 1.0277x slower new-array-buffer-dead 2.6147+-0.1604 2.5889+-0.0607 new-array-buffer-push 7.3367+-1.1664 6.8397+-0.3621 might be 1.0727x faster new-array-dead 10.1835+-0.8362 9.8870+-0.1967 might be 1.0300x faster new-array-push 4.8244+-0.0982 4.8015+-0.1095 number-test 2.8549+-0.0639 ? 2.8715+-0.1602 ? object-closure-call 5.6683+-0.0775 5.6558+-0.1248 object-test 3.0335+-0.3794 2.9198+-0.0143 might be 1.0390x faster poly-chain-access-different-prototypes-simple 3.1692+-0.0404 ? 3.1778+-0.0484 ? poly-chain-access-different-prototypes 2.6706+-0.2488 2.4948+-0.1757 might be 1.0705x faster poly-chain-access-simpler 3.2211+-0.0885 3.1744+-0.0364 might be 1.0147x faster poly-chain-access 2.8715+-0.3457 2.6664+-0.0817 might be 1.0769x faster poly-stricteq 58.8503+-1.0791 ? 59.3150+-1.4607 ? polymorphic-array-call 1.5146+-0.0350 1.4777+-0.0275 might be 1.0250x faster polymorphic-get-by-id 3.0059+-0.0711 ? 3.0193+-0.0372 ? polymorphic-put-by-id 48.1945+-11.9810 ? 49.2583+-11.9805 ? might be 1.0221x slower polymorphic-structure 16.1277+-0.9380 15.6676+-0.4752 might be 1.0294x faster polyvariant-monomorphic-get-by-id 8.2548+-0.0496 ? 8.3204+-0.1054 ? proto-getter-access 8.5110+-0.1902 8.3546+-0.1638 might be 1.0187x faster put-by-id-replace-and-transition 8.9042+-0.6722 8.6540+-0.4206 might be 1.0289x faster put-by-id-slightly-polymorphic 2.8051+-0.1792 2.7749+-0.1026 might be 1.0109x faster put-by-id 12.9309+-0.3145 ? 13.5411+-0.3987 ? might be 1.0472x slower put-by-val-large-index-blank-indexing-type 6.5837+-0.7903 ? 7.0031+-1.5198 ? might be 1.0637x slower put-by-val-machine-int 2.5360+-0.1726 2.4324+-0.0417 might be 1.0426x faster rare-osr-exit-on-local 15.6233+-1.2658 15.5515+-1.4393 register-pressure-from-osr 21.5783+-0.4031 21.5454+-0.4809 setter 5.5010+-0.6955 5.3040+-0.1353 might be 1.0371x faster simple-activation-demo 25.6603+-1.6143 24.4016+-0.2851 might be 1.0516x faster simple-getter-access 11.2225+-0.1747 11.0363+-0.1479 might be 1.0169x faster slow-array-profile-convergence 2.6027+-0.0602 ? 2.6858+-0.1195 ? might be 1.0320x slower slow-convergence 2.9814+-0.0624 ? 3.0376+-0.0896 ? might be 1.0188x slower sparse-conditional 1.0778+-0.1098 1.0367+-0.1096 might be 1.0397x faster splice-to-remove 16.6445+-1.3590 16.0108+-0.1856 might be 1.0396x faster string-char-code-at 16.8199+-1.2434 16.1958+-0.3733 might be 1.0385x faster string-concat-object 2.1056+-0.2109 2.0127+-0.0591 might be 1.0462x faster string-concat-pair-object 2.0357+-0.2461 1.9605+-0.0422 might be 1.0384x faster string-concat-pair-simple 10.8020+-0.4288 ? 10.8233+-0.5840 ? string-concat-simple 11.1286+-0.8912 11.0067+-0.4792 might be 1.0111x faster string-cons-repeat 7.6390+-0.5620 7.1277+-0.2877 might be 1.0717x faster string-cons-tower 7.5937+-0.1633 ? 8.2820+-0.9543 ? might be 1.0906x slower string-equality 18.4849+-1.4579 18.4778+-1.0770 string-get-by-val-big-char 8.6880+-0.3581 ? 8.9099+-0.7731 ? might be 1.0255x slower string-get-by-val-out-of-bounds-insane 3.5379+-0.1419 3.4765+-0.0527 might be 1.0177x faster string-get-by-val-out-of-bounds 5.2203+-0.8339 4.7222+-0.0504 might be 1.1055x faster string-get-by-val 3.1877+-0.1266 ? 3.1895+-0.1588 ? string-hash 1.9369+-0.1679 ? 2.1098+-0.2733 ? might be 1.0893x slower string-long-ident-equality 14.9052+-0.7969 ? 15.0607+-1.2600 ? might be 1.0104x slower string-repeat-arith 35.6364+-1.8490 33.9522+-2.6905 might be 1.0496x faster string-sub 66.7113+-1.6644 ? 67.1939+-1.5708 ? string-test 2.7688+-0.0983 2.7147+-0.0765 might be 1.0199x faster string-var-equality 30.3304+-0.1587 ? 31.2149+-1.3281 ? might be 1.0292x slower structure-hoist-over-transitions 2.3429+-0.0345 ? 2.3896+-0.0396 ? might be 1.0200x slower substring-concat-weird 38.4196+-1.7533 ? 38.9191+-1.4116 ? might be 1.0130x slower substring-concat 40.1971+-1.8932 ? 40.8398+-1.7974 ? might be 1.0160x slower substring 46.1918+-1.6901 45.6327+-2.0348 might be 1.0123x faster switch-char-constant 2.5327+-0.0277 ? 2.5557+-0.0687 ? switch-char 6.2882+-0.7865 5.9194+-0.1049 might be 1.0623x faster switch-constant 7.8412+-0.4152 7.3651+-0.2029 might be 1.0646x faster switch-string-basic-big-var 14.9858+-1.5225 ? 15.5098+-1.9016 ? might be 1.0350x slower switch-string-basic-big 14.3429+-1.4372 14.1205+-0.6040 might be 1.0157x faster switch-string-basic-var 14.9522+-1.3434 ? 16.0954+-2.1056 ? might be 1.0765x slower switch-string-basic 13.2338+-0.2802 ? 13.9162+-1.5945 ? might be 1.0516x slower switch-string-big-length-tower-var 21.3246+-1.7976 20.5445+-1.5737 might be 1.0380x faster switch-string-length-tower-var 15.5506+-1.6214 15.3820+-1.3330 might be 1.0110x faster switch-string-length-tower 13.0862+-1.5414 ? 13.5650+-1.7874 ? might be 1.0366x slower switch-string-short 12.5442+-0.5609 ? 14.5010+-1.9328 ? might be 1.1560x slower switch 11.7876+-0.6867 11.6716+-0.6270 tear-off-arguments-simple 1.6832+-0.2013 1.6030+-0.0714 might be 1.0500x faster tear-off-arguments 2.6537+-0.0916 2.6357+-0.1202 temporal-structure 12.1997+-0.5764 11.9831+-0.2281 might be 1.0181x faster to-int32-boolean 13.9837+-1.4621 ? 14.0686+-0.8808 ? undefined-test 2.7749+-0.0561 ? 2.7833+-0.0249 ? unprofiled-licm 22.7968+-2.0947 22.0306+-1.5355 might be 1.0348x faster weird-inlining-const-prop 1.9047+-0.2366 1.8256+-0.1197 might be 1.0433x faster <arithmetic> 14.7120+-0.1571 ? 14.8053+-0.0908 ? might be 1.0063x slower <geometric> * 7.6077+-0.0367 ? 7.6211+-0.0333 ? might be 1.0018x slower <harmonic> 3.7796+-0.0316 3.7639+-0.0306 might be 1.0042x faster NoEdge OriginalEdge AsmBench: bigfib.cpp 482.0354+-3.6144 ? 486.8372+-4.3456 ? cray.c 466.2465+-6.9750 460.3600+-3.1552 might be 1.0128x faster dry.c 499.1194+-7.1821 491.2013+-6.2425 might be 1.0161x faster FloatMM.c 718.8969+-2.1531 ! 735.4163+-2.3293 ! definitely 1.0230x slower gcc-loops.cpp 4335.2929+-15.3065 ? 4341.2349+-29.8479 ? n-body.c 1000.7402+-5.2103 991.7749+-3.8531 Quicksort.c 430.2230+-2.4660 424.4895+-4.2282 might be 1.0135x faster stepanov_container.cpp 3597.1681+-61.7194 3579.1082+-13.4140 Towers.c 275.1847+-1.8351 ? 276.2987+-2.5164 ? <arithmetic> 1311.6563+-6.5661 1309.6357+-3.7600 might be 1.0015x faster <geometric> * 809.3140+-2.8585 807.6984+-2.4090 might be 1.0020x faster <harmonic> 596.7762+-1.8347 595.4123+-2.9594 might be 1.0023x faster NoEdge OriginalEdge All benchmarks: <arithmetic> 97.1485+-0.3264 ? 97.2872+-0.2141 ? might be 1.0014x slower <geometric> 12.1848+-0.0447 12.1737+-0.0391 might be 1.0009x faster <harmonic> 3.2484+-0.0174 ^ 3.1375+-0.0144 ^ definitely 1.0354x faster NoEdge OriginalEdge Geomean of preferred means: <scaled-result> 49.6551+-0.2149 49.6027+-0.1224 might be 1.0011x faster And the other machine: Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, and AsmBench on oldmac (MacPro4,1). VMs tested: "TipOfTree" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r172859) "PolyInline" at /Volumes/Data/fromMiniMe/quartary/OpenSource/WebKitBuild/Release/jsc (r172859) 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. TipOfTree PolyInline SunSpider: 3d-cube 7.6417+-0.1425 ? 7.6646+-0.1572 ? 3d-morph 9.7458+-0.1848 9.7160+-0.1626 3d-raytrace 9.6039+-0.1371 ? 9.6735+-0.1106 ? access-binary-trees 2.8898+-0.1344 ? 2.9089+-0.1210 ? access-fannkuch 9.3876+-0.1983 ? 9.5025+-0.1697 ? might be 1.0122x slower access-nbody 4.7691+-0.0513 ? 4.7718+-0.0138 ? access-nsieve 5.8240+-0.1303 5.7928+-0.1274 bitops-3bit-bits-in-byte 2.0142+-0.0148 ? 2.0529+-0.0736 ? might be 1.0192x slower bitops-bits-in-byte 6.8547+-0.0138 ? 6.8665+-0.0363 ? bitops-bitwise-and 3.1777+-0.0162 ? 3.1884+-0.0056 ? bitops-nsieve-bits 5.6684+-0.0317 ? 5.7118+-0.0936 ? controlflow-recursive 2.9793+-0.0949 ? 3.0256+-0.0419 ? might be 1.0155x slower crypto-aes 6.2204+-0.0272 ? 6.2342+-0.0437 ? crypto-md5 3.5196+-0.0805 ? 3.5896+-0.1039 ? might be 1.0199x slower crypto-sha1 3.6911+-0.1204 ? 3.6951+-0.1273 ? date-format-tofte 13.4150+-0.0833 ^ 12.9730+-0.1729 ^ definitely 1.0341x faster date-format-xparb 8.3730+-0.1538 ! 8.9183+-0.3152 ! definitely 1.0651x slower math-cordic 4.6856+-0.0550 4.6676+-0.0593 math-partial-sums 10.4670+-0.1425 10.4116+-0.1630 math-spectral-norm 3.0164+-0.0302 ? 3.0216+-0.0250 ? regexp-dna 11.7566+-0.2298 11.7492+-0.1535 string-base64 6.3475+-0.0331 ? 6.3821+-0.0893 ? string-fasta 10.1973+-0.2379 10.0804+-0.2544 might be 1.0116x faster string-tagcloud 15.2227+-0.1573 15.1354+-0.1027 string-unpack-code 30.7170+-0.3014 ? 30.9201+-0.1492 ? string-validate-input 7.5859+-0.0820 ? 7.5934+-0.1610 ? <arithmetic> * 7.9143+-0.0192 ? 7.9326+-0.0214 ? might be 1.0023x slower <geometric> 6.5135+-0.0168 ? 6.5406+-0.0221 ? might be 1.0042x slower <harmonic> 5.4585+-0.0204 ? 5.4934+-0.0281 ? might be 1.0064x slower TipOfTree PolyInline LongSpider: 3d-cube 1362.1188+-23.3389 1356.5332+-8.0583 3d-morph 2273.7000+-2.4353 ? 2275.1687+-4.6213 ? 3d-raytrace 1319.6954+-8.1454 ? 1339.1442+-33.1985 ? might be 1.0147x slower access-binary-trees 1672.5390+-4.3509 ? 1677.0076+-9.2447 ? access-fannkuch 522.6868+-15.3211 ? 536.7624+-26.5314 ? might be 1.0269x slower access-nbody 1246.2704+-1.1416 ? 1247.4120+-3.3324 ? access-nsieve 1615.5767+-4.6635 1612.7738+-3.6321 bitops-3bit-bits-in-byte 57.5059+-0.2064 ? 57.6591+-0.2030 ? bitops-bits-in-byte 396.1296+-5.5647 391.4351+-3.9145 might be 1.0120x faster bitops-nsieve-bits 1179.4961+-6.3083 ? 1180.5186+-6.1871 ? controlflow-recursive 865.7085+-1.4374 ? 873.6347+-20.5855 ? crypto-aes 1157.5219+-25.5496 1140.0722+-26.8268 might be 1.0153x faster crypto-md5 963.3516+-19.5316 ? 975.2854+-29.4450 ? might be 1.0124x slower crypto-sha1 1196.9741+-4.8196 ? 1198.4860+-4.7225 ? date-format-tofte 1208.6256+-19.7178 1188.6861+-21.8736 might be 1.0168x faster date-format-xparb 1300.4768+-16.9396 ! 1396.9031+-63.0692 ! definitely 1.0741x slower math-cordic 811.4911+-0.8017 ? 813.4789+-4.4890 ? math-partial-sums 1327.8299+-28.7805 1316.1350+-2.6537 math-spectral-norm 1297.2773+-2.9668 ? 1302.5513+-17.4491 ? string-base64 590.3318+-3.7112 ! 606.2293+-2.5908 ! definitely 1.0269x slower string-fasta 694.8701+-2.9479 ? 719.1703+-23.9962 ? might be 1.0350x slower string-tagcloud 362.7490+-4.4563 ? 364.6218+-2.4075 ? <arithmetic> 1064.6785+-1.8617 ! 1071.3486+-3.1591 ! definitely 1.0063x slower <geometric> * 887.7965+-1.3726 ! 894.0869+-2.5645 ! definitely 1.0071x slower <harmonic> 539.6869+-0.5961 ! 542.7310+-1.1555 ! definitely 1.0056x slower TipOfTree PolyInline V8Spider: crypto 81.8224+-0.9865 81.5522+-0.9030 deltablue 98.9138+-0.7415 ! 121.6165+-0.8403 ! definitely 1.2295x slower earley-boyer 75.0022+-1.6672 74.7264+-1.9566 raytrace 44.4572+-0.5908 ! 47.2005+-0.3877 ! definitely 1.0617x slower regexp 104.0005+-0.2074 ? 105.7373+-2.9882 ? might be 1.0167x slower richards 106.8020+-1.2684 ! 118.9234+-1.2036 ! definitely 1.1135x slower splay 49.7790+-0.5114 ? 50.4914+-0.6756 ? might be 1.0143x slower <arithmetic> 80.1110+-0.3317 ! 85.7497+-0.6706 ! definitely 1.0704x slower <geometric> * 76.1987+-0.2431 ! 80.6520+-0.6375 ! definitely 1.0584x slower <harmonic> 71.9892+-0.2134 ! 75.4808+-0.5826 ! definitely 1.0485x slower TipOfTree PolyInline Octane: encrypt 0.39505+-0.00037 0.39478+-0.00029 decrypt 7.14203+-0.00466 ? 7.14556+-0.01286 ? deltablue x2 0.44034+-0.00323 ^ 0.34492+-0.00262 ^ definitely 1.2767x faster earley 1.35041+-0.01006 ? 1.37208+-0.01624 ? might be 1.0160x slower boyer 10.40394+-0.12814 ? 10.47997+-0.07309 ? navier-stokes x2 7.73104+-0.00436 7.72868+-0.00662 raytrace x2 2.66991+-0.02755 ? 2.67586+-0.03853 ? richards x2 0.22932+-0.01102 ^ 0.21293+-0.00244 ^ definitely 1.0770x faster splay x2 0.62858+-0.01083 0.62304+-0.00373 regexp x2 61.79943+-0.21471 61.37440+-0.28687 pdfjs x2 87.56147+-2.74194 ? 88.78002+-0.29038 ? might be 1.0139x slower mandreel x2 92.28253+-0.68799 ? 92.28710+-0.53171 ? gbemu x2 69.17189+-1.80168 ! 73.99837+-0.38989 ! definitely 1.0698x slower closure 0.90926+-0.00153 ? 0.90982+-0.00191 ? jquery 11.36424+-0.09067 11.29259+-0.08539 box2d x2 24.73689+-0.16971 24.70213+-0.15788 zlib x2 819.99953+-13.93619 816.56055+-3.78940 typescript x2 1284.09753+-7.63138 ! 1313.03080+-12.06748 ! definitely 1.0225x slower <arithmetic> 164.47540+-0.89563 ! 166.54108+-0.86400 ! definitely 1.0126x slower <geometric> * 12.35351+-0.06026 ^ 12.17029+-0.02356 ^ definitely 1.0151x faster <harmonic> 1.34229+-0.02486 ^ 1.23546+-0.00594 ^ definitely 1.0865x faster TipOfTree PolyInline Kraken: ai-astar 527.570+-1.057 ? 530.890+-9.426 ? audio-beat-detection 182.564+-0.934 179.410+-3.845 might be 1.0176x faster audio-dft 266.410+-23.780 252.810+-1.661 might be 1.0538x faster audio-fft 130.191+-0.503 ? 130.244+-0.248 ? audio-oscillator 367.561+-0.973 ? 368.280+-1.165 ? imaging-darkroom 292.169+-15.735 289.151+-7.171 might be 1.0104x faster imaging-desaturate 112.736+-0.352 112.600+-0.370 imaging-gaussian-blur 181.066+-4.892 179.763+-1.549 json-parse-financial 82.034+-0.909 ! 85.358+-0.729 ! definitely 1.0405x slower json-stringify-tinderbox 105.918+-0.712 ! 108.709+-0.538 ! definitely 1.0263x slower stanford-crypto-aes 101.987+-1.261 ? 102.860+-1.738 ? stanford-crypto-ccm 90.227+-12.114 ? 90.382+-12.305 ? stanford-crypto-pbkdf2 274.997+-0.964 274.822+-1.750 stanford-crypto-sha256-iterative 106.944+-0.226 ? 108.682+-2.631 ? might be 1.0162x slower <arithmetic> * 201.598+-2.399 200.997+-0.750 might be 1.0030x faster <geometric> 170.149+-2.483 ? 170.322+-1.830 ? might be 1.0010x slower <harmonic> 147.349+-2.797 ? 148.317+-2.768 ? might be 1.0066x slower TipOfTree PolyInline JSRegress: abs-boolean 4.1904+-0.0129 ? 4.2500+-0.0819 ? might be 1.0142x slower adapt-to-double-divide 20.2640+-0.5298 20.2598+-0.3938 aliased-arguments-getbyval 1.1014+-0.0085 1.1008+-0.0069 allocate-big-object 3.6531+-0.1073 ? 3.7896+-0.1890 ? might be 1.0374x slower arity-mismatch-inlining 1.0096+-0.0058 ? 1.0140+-0.0181 ? array-access-polymorphic-structure 10.8286+-0.2492 ? 10.8593+-0.1247 ? array-nonarray-polymorhpic-access 60.5963+-0.1674 ? 60.8316+-0.2437 ? array-prototype-every 125.3885+-3.0495 124.0745+-5.5939 might be 1.0106x faster array-prototype-forEach 124.9354+-1.9330 122.3156+-1.2700 might be 1.0214x faster array-prototype-map 149.5084+-0.9437 ^ 146.0835+-1.2415 ^ definitely 1.0234x faster array-prototype-some 123.8954+-1.2506 121.2385+-1.7273 might be 1.0219x faster array-splice-contiguous 67.8742+-0.7705 ? 68.2931+-0.7644 ? array-with-double-add 6.6257+-0.1668 ? 6.6960+-0.0970 ? might be 1.0106x slower array-with-double-increment 4.7144+-0.1455 4.6615+-0.0857 might be 1.0114x faster array-with-double-mul-add 7.9227+-0.2054 7.8576+-0.1301 array-with-double-sum 5.0220+-0.0820 5.0055+-0.0740 array-with-int32-add-sub 11.9456+-0.3755 ? 12.1267+-0.3805 ? might be 1.0152x slower array-with-int32-or-double-sum 5.1040+-0.0776 ? 5.1344+-0.0857 ? ArrayBuffer-DataView-alloc-large-long-lived 115.2481+-0.8356 ? 115.4960+-1.1770 ? ArrayBuffer-DataView-alloc-long-lived 32.4589+-0.3013 32.1158+-0.3501 might be 1.0107x faster ArrayBuffer-Int32Array-byteOffset 5.2599+-0.0291 5.2572+-0.0084 ArrayBuffer-Int8Array-alloc-large-long-lived 119.1289+-1.2854 ? 121.1141+-1.6794 ? might be 1.0167x slower ArrayBuffer-Int8Array-alloc-long-lived-buffer 50.5560+-0.5118 50.5299+-0.4884 ArrayBuffer-Int8Array-alloc-long-lived 31.0512+-0.4596 ? 31.8198+-0.9214 ? might be 1.0248x slower ArrayBuffer-Int8Array-alloc 27.6998+-0.5981 ? 28.3936+-0.6987 ? might be 1.0250x slower asmjs_bool_bug 10.2784+-0.1962 10.2381+-0.2763 assign-custom-setter-polymorphic 4.8741+-0.0899 ? 4.9091+-0.0147 ? assign-custom-setter 6.7618+-0.2158 6.7132+-0.1560 basic-set 15.9680+-1.3795 15.5776+-0.2155 might be 1.0251x faster big-int-mul 6.2659+-0.1083 ! 6.8029+-0.1353 ! definitely 1.0857x slower boolean-test 4.7462+-0.0350 ? 4.7810+-0.0241 ? branch-fold 5.0542+-0.0138 ? 5.1107+-0.0503 ? might be 1.0112x slower by-val-generic 12.8189+-0.1152 12.7554+-0.1893 call-spread-apply 20.7896+-0.3648 20.5406+-0.2497 might be 1.0121x faster call-spread-call 8.7040+-0.1308 ? 8.7699+-0.2139 ? captured-assignments 0.5747+-0.0027 ! 0.5870+-0.0044 ! definitely 1.0215x slower cast-int-to-double 9.4230+-0.1677 ? 9.4385+-0.1295 ? cell-argument 11.0344+-0.1046 ? 11.0364+-0.1733 ? cfg-simplify 4.0660+-0.0378 4.0552+-0.0090 chain-getter-access 13.7381+-0.1893 ? 13.8132+-0.2665 ? cmpeq-obj-to-obj-other 13.5122+-0.2048 ? 13.6499+-0.4508 ? might be 1.0102x slower constant-test 8.8265+-0.0770 8.7828+-0.0697 DataView-custom-properties 125.4700+-1.6947 123.8021+-0.9935 might be 1.0135x faster delay-tear-off-arguments-strictmode 3.6772+-0.0983 3.6356+-0.0188 might be 1.0115x faster destructuring-arguments 8.9448+-0.2378 8.9150+-0.0839 destructuring-swap 8.9359+-0.1647 8.9254+-0.0927 direct-arguments-getbyval 1.1204+-0.0368 1.1176+-0.0095 div-boolean-double 6.4215+-0.0791 6.4041+-0.0504 div-boolean 11.7522+-0.1085 11.7490+-0.3016 double-get-by-val-out-of-bounds 6.6582+-0.1284 ? 6.7003+-0.1772 ? double-pollution-getbyval 11.4834+-0.2198 ? 11.6361+-0.1453 ? might be 1.0133x slower double-pollution-putbyoffset 6.1704+-0.1254 6.1212+-0.1235 double-to-int32-typed-array-no-inline 3.0806+-0.1453 3.0271+-0.0497 might be 1.0177x faster double-to-int32-typed-array 2.4511+-0.0153 ! 2.4803+-0.0085 ! definitely 1.0119x slower double-to-uint32-typed-array-no-inline 3.1080+-0.1167 3.0998+-0.1145 double-to-uint32-typed-array 2.6748+-0.0515 2.6697+-0.0259 empty-string-plus-int 10.3418+-0.2661 ? 10.4449+-0.0703 ? emscripten-cube2hash 53.6081+-0.9473 ? 53.6765+-0.3949 ? external-arguments-getbyval 2.0438+-0.0189 ? 2.0570+-0.0099 ? external-arguments-putbyval 3.0013+-0.0375 ? 3.0664+-0.1714 ? might be 1.0217x slower fixed-typed-array-storage-var-index 1.5112+-0.0095 ? 1.5288+-0.0143 ? might be 1.0116x slower fixed-typed-array-storage 1.0985+-0.0212 ? 1.1035+-0.0133 ? Float32Array-matrix-mult 7.5809+-0.2066 7.5293+-0.1596 Float32Array-to-Float64Array-set 89.3455+-2.0997 88.6150+-0.6059 Float64Array-alloc-long-lived 101.4982+-1.3239 ? 101.7382+-1.0706 ? Float64Array-to-Int16Array-set 116.0667+-2.3927 ? 116.4505+-0.3207 ? fold-double-to-int 20.7860+-0.2592 ? 20.8783+-0.1261 ? fold-get-by-id-to-multi-get-by-offset-rare-int 19.3485+-0.5090 ! 24.2670+-0.4757 ! definitely 1.2542x slower fold-get-by-id-to-multi-get-by-offset 18.0706+-0.4343 ! 22.9762+-0.3276 ! definitely 1.2715x slower fold-multi-get-by-offset-to-get-by-offset 13.0519+-0.1259 ! 17.7496+-0.4189 ! definitely 1.3599x slower fold-multi-get-by-offset-to-poly-get-by-offset 13.3820+-0.4219 ! 18.1259+-0.5271 ! definitely 1.3545x slower fold-multi-put-by-offset-to-poly-put-by-offset 13.2170+-0.0956 ! 18.5815+-0.2961 ! definitely 1.4059x slower fold-multi-put-by-offset-to-put-by-offset 13.1535+-1.1090 ! 16.8832+-0.3022 ! definitely 1.2835x slower fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 18.4565+-0.8418 ! 22.5794+-0.1791 ! definitely 1.2234x slower fold-put-by-id-to-multi-put-by-offset 20.6331+-0.3293 ! 25.9192+-0.5631 ! definitely 1.2562x slower fold-put-structure 12.8500+-0.1783 ! 17.6426+-0.1786 ! definitely 1.3730x slower for-of-iterate-array-entries 9.4312+-0.2016 ^ 8.5077+-0.1317 ^ definitely 1.1085x faster for-of-iterate-array-keys 3.6118+-0.0215 ! 3.9165+-0.0564 ! definitely 1.0844x slower for-of-iterate-array-values 3.1910+-0.1020 ? 3.3229+-0.0539 ? might be 1.0414x slower fround 23.5791+-0.3557 ? 24.1922+-1.0135 ? might be 1.0260x slower ftl-library-inlining-dataview 110.4998+-4.6072 109.1077+-1.2288 might be 1.0128x faster ftl-library-inlining 117.3490+-2.4552 116.6074+-1.4423 function-dot-apply 2.2856+-0.0272 ? 2.2889+-0.0173 ? function-test 5.3420+-0.2516 5.2459+-0.1262 might be 1.0183x faster function-with-eval 102.3576+-2.4186 ? 104.8975+-1.4622 ? might be 1.0248x slower gcse-poly-get-less-obvious 29.3587+-0.2803 28.9246+-0.5704 might be 1.0150x faster gcse-poly-get 29.4891+-0.1294 ? 29.5617+-0.1769 ? gcse 7.6128+-0.0942 ? 7.6907+-0.1486 ? might be 1.0102x slower get-by-id-bimorphic-check-structure-elimination-simple 3.8202+-0.0900 3.7778+-0.0733 might be 1.0112x faster get-by-id-bimorphic-check-structure-elimination 9.6056+-0.2382 9.5563+-0.2300 get-by-id-chain-from-try-block 8.3434+-0.1099 ^ 7.9974+-0.1113 ^ definitely 1.0433x faster get-by-id-check-structure-elimination 8.7511+-0.1382 8.6842+-0.2031 get-by-id-proto-or-self 26.0265+-1.7440 ? 27.1607+-2.0516 ? might be 1.0436x slower get-by-id-quadmorphic-check-structure-elimination-simple 4.5235+-0.0640 ? 4.5489+-0.0741 ? get-by-id-self-or-proto 28.9979+-4.6041 27.9952+-5.6188 might be 1.0358x faster get-by-val-out-of-bounds 6.5971+-0.0353 ! 6.7671+-0.1132 ! definitely 1.0258x slower get_callee_monomorphic 5.2896+-0.1336 5.2832+-0.0786 get_callee_polymorphic 4.9591+-0.0910 4.9468+-0.0562 getter-no-activation 6.7582+-0.1084 6.6928+-0.0491 getter-richards 148.9347+-1.3699 ! 159.9229+-5.4891 ! definitely 1.0738x slower getter 7.5523+-0.1618 7.4640+-0.1007 might be 1.0118x faster global-var-const-infer-fire-from-opt 1.1779+-0.0744 ? 1.2557+-0.0354 ? might be 1.0661x slower global-var-const-infer 1.0273+-0.0307 1.0205+-0.0051 HashMap-put-get-iterate-keys 39.9696+-0.3442 ? 40.4733+-0.6120 ? might be 1.0126x slower HashMap-put-get-iterate 39.7800+-0.3737 39.6106+-0.5474 HashMap-string-put-get-iterate 44.9473+-0.5934 44.7971+-0.4299 hoist-make-rope 14.3222+-1.2139 13.1725+-0.5165 might be 1.0873x faster hoist-poly-check-structure-effectful-loop 7.4647+-0.2217 ? 7.5913+-0.0568 ? might be 1.0170x slower hoist-poly-check-structure 5.6422+-0.1109 5.5929+-0.0107 imul-double-only 9.7821+-0.1979 ? 9.7927+-0.3047 ? imul-int-only 13.2105+-0.4060 13.0717+-0.1521 might be 1.0106x faster imul-mixed 9.5378+-0.6005 9.4825+-0.7362 in-four-cases 28.3360+-0.5053 ? 28.3902+-0.5436 ? in-one-case-false 14.6774+-0.1651 ? 14.8540+-0.1751 ? might be 1.0120x slower in-one-case-true 14.7084+-0.1736 ? 14.7157+-0.1950 ? in-two-cases 15.4439+-0.2359 15.3542+-0.2213 indexed-properties-in-objects 4.2903+-0.0604 ? 4.3174+-0.0706 ? infer-closure-const-then-mov-no-inline 4.7271+-0.0438 ? 4.7900+-0.0913 ? might be 1.0133x slower infer-closure-const-then-mov 29.1670+-0.0623 ? 29.1813+-0.0752 ? infer-closure-const-then-put-to-scope-no-inline 17.5997+-0.1876 17.5252+-0.1327 infer-closure-const-then-put-to-scope 33.1616+-0.0635 ? 33.1768+-0.1238 ? infer-closure-const-then-reenter-no-inline 77.6793+-1.6291 77.0885+-0.1401 infer-closure-const-then-reenter 33.1973+-0.1083 33.1812+-0.0738 infer-constant-global-property 5.3742+-0.0119 ! 5.4571+-0.0639 ! definitely 1.0154x slower infer-constant-property 3.6722+-0.0574 ? 3.6731+-0.0510 ? infer-one-time-closure-ten-vars 16.5052+-0.1355 16.4454+-0.3889 infer-one-time-closure-two-vars 15.7928+-0.1118 15.7264+-0.1075 infer-one-time-closure 15.6665+-0.1384 ? 16.0077+-0.4487 ? might be 1.0218x slower infer-one-time-deep-closure 28.4102+-0.4318 28.1293+-0.1471 inline-arguments-access 2.2023+-0.0099 ? 2.2218+-0.0149 ? inline-arguments-aliased-access 2.4943+-0.0923 2.4766+-0.0155 inline-arguments-local-escape 20.2693+-0.2325 ^ 19.7572+-0.1435 ^ definitely 1.0259x faster inline-get-scoped-var 6.4665+-0.1020 6.4353+-0.0273 inlined-put-by-id-transition 15.8419+-0.2961 15.6768+-0.3129 might be 1.0105x faster int-or-other-abs-then-get-by-val 7.9000+-0.0330 ? 7.9666+-0.0472 ? int-or-other-abs-zero-then-get-by-val 29.2445+-0.1132 29.0841+-0.1230 int-or-other-add-then-get-by-val 6.7159+-0.0579 ? 6.7597+-0.0419 ? int-or-other-add 8.9752+-0.1532 ? 9.0004+-0.0993 ? int-or-other-div-then-get-by-val 5.8857+-0.1269 5.8822+-0.0355 int-or-other-max-then-get-by-val 7.5189+-0.2053 7.4499+-0.1188 int-or-other-min-then-get-by-val 6.0328+-0.0981 5.9889+-0.0299 int-or-other-mod-then-get-by-val 5.8432+-0.0246 ? 5.8482+-0.0359 ? int-or-other-mul-then-get-by-val 5.7489+-0.0898 5.7148+-0.0333 int-or-other-neg-then-get-by-val 7.1750+-0.0237 7.1353+-0.0325 int-or-other-neg-zero-then-get-by-val 29.2216+-0.1930 ? 29.2758+-0.3230 ? int-or-other-sub-then-get-by-val 6.7803+-0.1393 6.7571+-0.0432 int-or-other-sub 5.4471+-0.0135 ? 5.4540+-0.0300 ? int-overflow-local 6.6791+-0.0605 ? 6.6889+-0.0245 ? Int16Array-alloc-long-lived 72.4471+-0.3725 ? 72.8431+-0.8254 ? Int16Array-bubble-sort-with-byteLength 44.2178+-0.2543 ? 44.3513+-0.2525 ? Int16Array-bubble-sort 43.3371+-0.1215 43.2833+-0.1032 Int16Array-load-int-mul 2.0850+-0.0160 ? 2.0905+-0.0314 ? Int16Array-to-Int32Array-set 87.1538+-0.7086 ? 88.4499+-2.4546 ? might be 1.0149x slower Int32Array-alloc-large 42.4533+-0.6858 ? 42.6210+-1.5237 ? Int32Array-alloc-long-lived 80.7248+-0.6793 ? 81.5413+-0.5318 ? might be 1.0101x slower Int32Array-alloc 4.8114+-0.1552 4.7766+-0.1509 Int32Array-Int8Array-view-alloc 15.6599+-0.7869 15.3693+-0.1938 might be 1.0189x faster int52-spill 11.1039+-0.1095 ? 11.3079+-0.3121 ? might be 1.0184x slower Int8Array-alloc-long-lived 66.9782+-0.7497 66.5729+-0.5437 Int8Array-load-with-byteLength 5.4493+-0.0111 ? 5.5251+-0.0758 ? might be 1.0139x slower Int8Array-load 5.5015+-0.0948 ? 5.5527+-0.0768 ? integer-divide 16.7788+-0.0662 ? 16.8385+-0.1250 ? integer-modulo 3.1339+-0.2867 3.0809+-0.2984 might be 1.0172x faster large-int-captured 10.7169+-0.2030 ? 10.8913+-0.0488 ? might be 1.0163x slower large-int-neg 24.1620+-0.2618 24.0846+-0.2337 large-int 21.4510+-0.2560 ? 21.5533+-0.5627 ? logical-not 6.9349+-0.1920 6.8632+-0.1250 might be 1.0104x faster lots-of-fields 16.9520+-0.1439 ? 16.9801+-0.1257 ? make-indexed-storage 4.5560+-0.1572 ? 4.6114+-0.1452 ? might be 1.0122x slower make-rope-cse 6.2449+-0.0544 ? 6.2853+-0.0966 ? marsaglia-larger-ints 59.2665+-0.7333 ? 59.4852+-0.5810 ? marsaglia-osr-entry 31.0822+-0.3873 ? 31.1824+-0.4348 ? max-boolean 3.6989+-0.0179 ? 3.7004+-0.0089 ? method-on-number 27.7057+-0.6499 27.5643+-0.4926 min-boolean 3.7804+-0.3378 3.6527+-0.0476 might be 1.0350x faster minus-boolean-double 4.7937+-0.0390 ? 4.7972+-0.0419 ? minus-boolean 3.6539+-0.0797 3.6165+-0.0200 might be 1.0103x faster misc-strict-eq 55.5595+-0.6492 ? 56.6303+-0.9475 ? might be 1.0193x slower mod-boolean-double 13.9290+-0.2239 13.9090+-0.1097 mod-boolean 10.5693+-0.1510 ? 10.5900+-0.1720 ? mul-boolean-double 5.6012+-0.0564 5.6012+-0.0124 mul-boolean 4.0441+-0.1646 3.9701+-0.0542 might be 1.0187x faster neg-boolean 4.8645+-0.0211 4.8600+-0.0102 negative-zero-divide 0.4234+-0.0016 ? 0.4297+-0.0070 ? might be 1.0149x slower negative-zero-modulo 0.4255+-0.0025 ? 0.4302+-0.0033 ? might be 1.0109x slower negative-zero-negate 0.3944+-0.0027 ? 0.3978+-0.0016 ? nested-function-parsing 48.4243+-0.1858 ^ 46.8136+-0.2802 ^ definitely 1.0344x faster new-array-buffer-dead 4.0485+-0.0912 ? 4.1210+-0.1290 ? might be 1.0179x slower new-array-buffer-push 10.7369+-0.2564 10.7238+-0.2654 new-array-dead 14.3492+-0.4051 ? 14.6842+-0.3093 ? might be 1.0233x slower new-array-push 7.5195+-0.1034 7.4357+-0.0818 might be 1.0113x faster number-test 4.6294+-0.0085 ? 4.6885+-0.0536 ? might be 1.0128x slower object-closure-call 9.0721+-0.0646 9.0653+-0.0703 object-test 5.0187+-0.0895 4.9842+-0.0513 plus-boolean-arith 3.7793+-0.1231 3.7638+-0.0861 plus-boolean-double 4.7785+-0.1238 ? 4.7989+-0.0134 ? plus-boolean 3.5606+-0.0427 3.5514+-0.0109 poly-chain-access-different-prototypes-simple 4.4509+-0.0825 4.4481+-0.0623 poly-chain-access-different-prototypes 3.6587+-0.0349 3.6493+-0.0115 poly-chain-access-simpler 4.3841+-0.0114 ? 4.4067+-0.0206 ? poly-chain-access 2.8846+-0.1668 ! 3.6304+-0.0153 ! definitely 1.2585x slower poly-stricteq 82.4382+-0.3777 ? 82.4407+-0.4155 ? polymorphic-array-call 2.2198+-0.0540 ? 2.2225+-0.0337 ? polymorphic-get-by-id 4.7649+-0.1187 4.7328+-0.0237 polymorphic-put-by-id 91.9373+-30.8290 87.1221+-28.8626 might be 1.0553x faster polymorphic-structure 24.7231+-0.1363 24.6898+-0.1252 polyvariant-monomorphic-get-by-id 13.4931+-0.2289 13.4032+-0.0837 proto-getter-access 13.9190+-0.4572 13.8847+-0.2176 put-by-id-replace-and-transition 12.5491+-0.2205 ? 12.6838+-0.1237 ? might be 1.0107x slower put-by-id-slightly-polymorphic 4.0026+-0.0134 ? 4.0087+-0.0077 ? put-by-id 21.0482+-0.6425 ? 21.2810+-0.2682 ? might be 1.0111x slower put-by-val-direct 0.7841+-0.0095 0.7792+-0.0025 put-by-val-large-index-blank-indexing-type 10.7024+-0.1690 ? 10.8392+-0.1432 ? might be 1.0128x slower put-by-val-machine-int 4.5385+-0.1343 ? 4.6261+-0.1769 ? might be 1.0193x slower rare-osr-exit-on-local 21.5156+-0.2435 ? 21.5888+-0.6285 ? register-pressure-from-osr 31.7705+-0.1699 31.7360+-0.1140 setter 7.4878+-0.1001 ? 7.5004+-0.0629 ? simple-activation-demo 35.3610+-0.6028 35.0068+-0.0759 might be 1.0101x faster simple-getter-access 20.0123+-0.3547 ? 20.1828+-0.5748 ? sin-boolean 23.9242+-0.5900 ? 23.9323+-0.9815 ? slow-array-profile-convergence 4.3903+-0.2625 ? 4.5756+-0.4369 ? might be 1.0422x slower slow-convergence 4.8061+-0.0550 ? 4.8268+-0.0344 ? sparse-conditional 1.4873+-0.0067 ? 1.5115+-0.0270 ? might be 1.0162x slower splice-to-remove 27.2432+-0.2019 ? 29.3931+-3.0136 ? might be 1.0789x slower string-char-code-at 23.5105+-0.4838 23.4856+-0.1206 string-concat-object 3.2496+-0.1139 3.2120+-0.0202 might be 1.0117x faster string-concat-pair-object 3.0885+-0.0432 ! 3.1497+-0.0158 ! definitely 1.0198x slower string-concat-pair-simple 18.4476+-0.1737 ? 18.4703+-0.2432 ? string-concat-simple 18.8616+-0.3274 ? 18.9595+-0.3733 ? string-cons-repeat 11.9074+-0.0273 ? 12.1541+-0.4696 ? might be 1.0207x slower string-cons-tower 10.9768+-0.1776 ? 11.0043+-0.0530 ? string-equality 26.0942+-0.2869 26.0892+-0.2254 string-get-by-val-big-char 13.6257+-0.1574 ? 14.0764+-0.4104 ? might be 1.0331x slower string-get-by-val-out-of-bounds-insane 5.9830+-0.1955 ? 6.0499+-0.1949 ? might be 1.0112x slower string-get-by-val-out-of-bounds 7.1162+-0.1626 ? 7.1683+-0.1190 ? string-get-by-val 5.5465+-0.0554 ? 5.5812+-0.0523 ? string-hash 2.8822+-0.0554 ? 2.9874+-0.0660 ? might be 1.0365x slower string-long-ident-equality 21.2462+-0.0597 ? 21.3082+-0.2540 ? string-repeat-arith 49.3693+-0.3392 ? 49.7930+-0.4433 ? string-sub 97.3771+-1.1276 95.6066+-0.8561 might be 1.0185x faster string-test 4.6431+-0.0028 ! 4.7363+-0.0884 ! definitely 1.0201x slower string-var-equality 52.0043+-0.1377 ? 52.0246+-0.2029 ? structure-hoist-over-transitions 3.8567+-0.0423 ? 3.8895+-0.0547 ? substring-concat-weird 62.9324+-0.6381 ? 63.2316+-0.3894 ? substring-concat 66.0892+-0.3537 ? 66.4879+-0.4288 ? substring 74.3722+-0.2614 ? 74.7019+-0.3242 ? switch-char-constant 3.6740+-0.0118 ? 3.6772+-0.0170 ? switch-char 10.2209+-0.0667 10.1985+-0.1072 switch-constant 11.5618+-0.1827 ? 11.6426+-0.1172 ? switch-string-basic-big-var 24.6698+-2.1359 ? 25.5852+-1.6928 ? might be 1.0371x slower switch-string-basic-big 34.1510+-2.3720 31.8389+-4.2405 might be 1.0726x faster switch-string-basic-var 31.9045+-0.6724 31.3460+-0.8992 might be 1.0178x faster switch-string-basic 33.0007+-1.7155 31.9442+-2.7196 might be 1.0331x faster switch-string-big-length-tower-var 29.9474+-0.1772 ? 30.0159+-0.1438 ? switch-string-length-tower-var 23.9316+-0.0810 23.8863+-0.1909 switch-string-length-tower 17.3813+-0.1221 ? 17.3878+-0.0895 ? switch-string-short 18.6518+-2.6385 ? 19.2562+-2.6851 ? might be 1.0324x slower switch 16.0593+-0.1999 ? 16.0626+-0.1502 ? tear-off-arguments-simple 2.3925+-0.1304 2.3508+-0.0117 might be 1.0177x faster tear-off-arguments 3.8904+-0.0478 3.8652+-0.0390 temporal-structure 20.3263+-0.1458 20.2465+-0.1312 to-int32-boolean 24.8057+-0.4850 24.5769+-0.1128 undefined-test 4.8271+-0.0573 ? 4.9126+-0.0749 ? might be 1.0177x slower unprofiled-licm 30.9115+-0.6142 ? 31.4133+-0.2212 ? might be 1.0162x slower weird-inlining-const-prop 2.6380+-0.0319 ? 2.7479+-0.1101 ? might be 1.0417x slower <arithmetic> 21.9531+-0.1235 ? 22.1194+-0.1603 ? might be 1.0076x slower <geometric> * 11.0702+-0.0183 ! 11.2025+-0.0304 ! definitely 1.0120x slower <harmonic> 5.4656+-0.0129 ! 5.5220+-0.0108 ! definitely 1.0103x slower TipOfTree PolyInline AsmBench: bigfib.cpp 799.0097+-5.1042 ? 799.2521+-4.6963 ? cray.c 797.0303+-6.2303 793.0916+-3.5205 dry.c 777.9469+-12.0910 ? 788.5703+-23.1861 ? might be 1.0137x slower FloatMM.c 1148.9486+-1.8388 ? 1153.1522+-11.9924 ? gcc-loops.cpp 7556.7237+-6.3893 ? 7616.5415+-156.1593 ? n-body.c 2019.8949+-29.8675 2008.2724+-7.3764 Quicksort.c 696.5685+-1.2122 694.4550+-14.2886 stepanov_container.cpp 5830.7129+-14.5595 ? 5833.9621+-21.0850 ? Towers.c 494.4412+-4.2497 493.4085+-1.7915 <arithmetic> 2235.6974+-4.7198 ? 2242.3006+-16.8359 ? might be 1.0030x slower <geometric> * 1373.9217+-5.5283 ? 1375.3999+-7.2820 ? might be 1.0011x slower <harmonic> 1009.0399+-5.0517 ? 1009.4332+-6.3465 ? might be 1.0004x slower TipOfTree PolyInline All benchmarks: <arithmetic> 155.1876+-0.3016 ! 156.1091+-0.5973 ! definitely 1.0059x slower <geometric> 17.9896+-0.0226 ! 18.1537+-0.0416 ! definitely 1.0091x slower <harmonic> 4.9180+-0.0281 ^ 4.8290+-0.0097 ^ definitely 1.0184x faster TipOfTree PolyInline Geomean of preferred means: <scaled-result> 79.6170+-0.1866 ! 80.3163+-0.1431 ! definitely 1.0088x slower Created attachment 237056 [details]
the patch
Some fixes.
Attachment 237056 [details] did not pass style-queue:
ERROR: Source/JavaScriptCore/bytecode/CallEdgeProfile.cpp:70: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3]
ERROR: Source/WTF/wtf/Spectrum.h:114: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/dfg/DFGNode.h:182: Should be indented on a separate line, with the colon or comma first on that line. [whitespace/indent] [4]
Total errors found: 3 in 73 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 237087 [details]
the patch
Fix for CMake.
Attachment 237087 [details] did not pass style-queue:
ERROR: Source/JavaScriptCore/bytecode/CallEdgeProfile.cpp:70: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3]
ERROR: Source/WTF/wtf/Spectrum.h:114: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/dfg/DFGNode.h:182: Should be indented on a separate line, with the colon or comma first on that line. [whitespace/indent] [4]
Total errors found: 3 in 73 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 237099 [details]
the patch
More fixes.
Attachment 237099 [details] did not pass style-queue:
ERROR: Source/JavaScriptCore/bytecode/CallEdgeProfile.cpp:70: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3]
ERROR: Source/WTF/wtf/Spectrum.h:114: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/dfg/DFGNode.h:182: Should be indented on a separate line, with the colon or comma first on that line. [whitespace/indent] [4]
Total errors found: 3 in 73 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Comment on attachment 237099 [details] the patch View in context: https://bugs.webkit.org/attachment.cgi?id=237099&action=review > Source/JavaScriptCore/bytecode/CallEdgeProfile.cpp:55 > + for (CallEdge entry : m_otherCallees->m_processed) { CallEdge&? > Source/JavaScriptCore/bytecode/CallEdgeProfile.cpp:82 > + for (CallEdge edge : callEdges()) CallEdge&? > Source/JavaScriptCore/bytecode/CallEdgeProfile.cpp:212 > + for (auto entry : *m_otherCallees->m_temporarySpectrum) I think auto& is best here. The pointed-to items are not super huge, but we have scripts that flag uses of "for (auto " because it has been a problem in other places, and it's nice to stay out of the noise. > Source/JavaScriptCore/bytecode/CallVariant.h:172 > + JSCell* m_callee; It looks like this value is ultimately a member of a heap data structure. Does it need to be a WriteBarrier<JSCell>? > Source/WTF/wtf/OwnPtr.h:81 > + // Construct an object to store into this OwnPtr, but only so long as this OwnPtr > + // doesn't already point to an object. This will ensure that after you call this, > + // the OwnPtr will point to an instance of T. This instance may or may not have been > + // created by this call. Moreover, this call uses an opportunistic transaction, in > + // that we may create an instance of T and then immediately throw it away. Comment should probably mention concurrency: "will point to an instance of T, even in called concurrently". > Source/WTF/wtf/Spectrum.h:55 > + for (auto entry : otherSpectrum) auto& (In reply to comment #34) > (From update of attachment 237099 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=237099&action=review > > > Source/JavaScriptCore/bytecode/CallEdgeProfile.cpp:55 > > + for (CallEdge entry : m_otherCallees->m_processed) { > > CallEdge&? I'll fix these in this patch and I understand the reasoning, but I think it's a dangerous trade-off. We used to use references a lot in the DFG - and it led to crash bugs if the underlying storage was changed. Ever since, we've been erring on the side of copying to avoid such crashes. I guess that this won't happen in any of these loops, but to me it feels like bad form to introduce aliasing unless it's really needed, since it can cause memory corruption bugs. > > > Source/JavaScriptCore/bytecode/CallEdgeProfile.cpp:82 > > + for (CallEdge edge : callEdges()) > > CallEdge&? Fixed, but see above. > > > Source/JavaScriptCore/bytecode/CallEdgeProfile.cpp:212 > > + for (auto entry : *m_otherCallees->m_temporarySpectrum) > > I think auto& is best here. The pointed-to items are not super huge, but we have scripts that flag uses of "for (auto " because it has been a problem in other places, and it's nice to stay out of the noise. Fixed, but see above. I assume that the problem you're referring to is copying large amounts of stuff? > > > Source/JavaScriptCore/bytecode/CallVariant.h:172 > > + JSCell* m_callee; > > It looks like this value is ultimately a member of a heap data structure. Does it need to be a WriteBarrier<JSCell>? I think I just added a comment about this. CallVariant is meant to be used form the concurrent JIT thread, so WriteBarrier<JSCell> would just get in the way. We don't want to fire barriers from the concurrent threads. At least until we finally fix the bug where JS doesn't have concurrency. :-P > > > Source/WTF/wtf/OwnPtr.h:81 > > + // Construct an object to store into this OwnPtr, but only so long as this OwnPtr > > + // doesn't already point to an object. This will ensure that after you call this, > > + // the OwnPtr will point to an instance of T. This instance may or may not have been > > + // created by this call. Moreover, this call uses an opportunistic transaction, in > > + // that we may create an instance of T and then immediately throw it away. > > Comment should probably mention concurrency: "will point to an instance of T, even in called concurrently". Will fix. > > > Source/WTF/wtf/Spectrum.h:55 > > + for (auto entry : otherSpectrum) > > auto& Fixed, but see above. Comment on attachment 237099 [details] the patch Attachment 237099 [details] did not pass mac-wk2-ews (mac-wk2): Output: http://webkit-queues.appspot.com/results/4980519884292096 New failing tests: compositing/checkerboard.html compositing/absolute-position-changed-in-composited-layer.html compositing/bounds-in-flipped-writing-mode.html accessibility/adjacent-continuations-cause-assertion-failure.html canvas/philip/tests/2d.clearRect+fillRect.alpha0.html animations/3d/matrix-transform-type-animation.html animations/animation-border-overflow.html animations/3d/transform-origin-vs-functions.html http/tests/appcache/abort-cache-onchecking.html animations/3d/state-at-end-event-transform.html canvas/philip/tests/2d.clearRect+fillRect.basic.html animations/animation-add-events-in-handler.html animations/animation-controller-drt-api.html animations/additive-transform-animations.html animations/3d/replace-filling-transform.html http/tests/appcache/abort-cache-onchecking-resource-404.html accessibility/alt-tag-on-image-with-nonimage-role.html compositing/absolute-position-changed-with-composited-parent-layer.html Created attachment 237107 [details]
Archive of layout-test-results from webkit-ews-09 for mac-mountainlion-wk2
The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: webkit-ews-09 Port: mac-mountainlion-wk2 Platform: Mac OS X 10.8.5
(In reply to comment #36) > (From update of attachment 237099 [details]) > Attachment 237099 [details] did not pass mac-wk2-ews (mac-wk2): > Output: http://webkit-queues.appspot.com/results/4980519884292096 > > New failing tests: > compositing/checkerboard.html > compositing/absolute-position-changed-in-composited-layer.html > compositing/bounds-in-flipped-writing-mode.html > accessibility/adjacent-continuations-cause-assertion-failure.html > canvas/philip/tests/2d.clearRect+fillRect.alpha0.html > animations/3d/matrix-transform-type-animation.html > animations/animation-border-overflow.html > animations/3d/transform-origin-vs-functions.html > http/tests/appcache/abort-cache-onchecking.html > animations/3d/state-at-end-event-transform.html > canvas/philip/tests/2d.clearRect+fillRect.basic.html > animations/animation-add-events-in-handler.html > animations/animation-controller-drt-api.html > animations/additive-transform-animations.html > animations/3d/replace-filling-transform.html > http/tests/appcache/abort-cache-onchecking-resource-404.html > accessibility/alt-tag-on-image-with-nonimage-role.html > compositing/absolute-position-changed-with-composited-parent-layer.html The bot seems to be failing these even without my patch. Landed in http://trac.webkit.org/changeset/172940 Looks like this patch broke fast/storage/serialized-script-value.html: Thread 15 Crashed:: DFG Worklist Worker Thread 0 com.apple.JavaScriptCore 0x0000000109f50f7a WTFCrash + 42 (Assertions.cpp:329) 1 com.apple.JavaScriptCore 0x0000000109998325 JSC::DFG::SpeculativeJIT::speculationCheck(JSC::ExitKind, JSC::JSValueSource, JSC::DFG::Edge, JSC::AbstractMacroAssembler<JSC::X86Assembler>::Jump) + 101 (DFGSpeculativeJIT.cpp:171) 2 com.apple.JavaScriptCore 0x00000001099df645 JSC::DFG::SpeculativeJIT::fillSpeculateCell(JSC::DFG::Edge) + 1413 (DFGSpeculativeJIT64.cpp:1053) 3 com.apple.JavaScriptCore 0x00000001099b58f0 JSC::DFG::SpeculateCellOperand::gpr() + 144 (DFGSpeculativeJIT.h:3094) 4 com.apple.JavaScriptCore 0x00000001099d72da JSC::DFG::SpeculateCellOperand::SpeculateCellOperand(JSC::DFG::SpeculativeJIT*, JSC::DFG::Edge, JSC::DFG::OperandSpeculationMode) + 266 (DFGSpeculativeJIT.h:3069) 5 com.apple.JavaScriptCore 0x00000001099b584b JSC::DFG::SpeculateCellOperand::SpeculateCellOperand(JSC::DFG::SpeculativeJIT*, JSC::DFG::Edge, JSC::DFG::OperandSpeculationMode) + 43 (DFGSpeculativeJIT.h:3070) 6 com.apple.JavaScriptCore 0x00000001099af1b7 JSC::DFG::SpeculativeJIT::speculateCell(JSC::DFG::Edge) + 103 (DFGSpeculativeJIT.cpp:4583) 7 com.apple.JavaScriptCore 0x00000001099b046d JSC::DFG::SpeculativeJIT::speculate(JSC::DFG::Node*, JSC::DFG::Edge) + 733 (DFGSpeculativeJIT.cpp:4855) 8 com.apple.JavaScriptCore 0x00000001099f5f8f JSC::DFG::SpeculativeJIT::compile(JSC::DFG::Node*) + 72895 (DFGSpeculativeJIT64.cpp:4646) 9 com.apple.JavaScriptCore 0x000000010999e450 JSC::DFG::SpeculativeJIT::compileCurrentBlock() + 1776 (DFGSpeculativeJIT.cpp:1452) 10 com.apple.JavaScriptCore 0x000000010999ec36 JSC::DFG::SpeculativeJIT::compile() + 182 (DFGSpeculativeJIT.cpp:1558) Re-opened since this is blocked by bug 136256 Created attachment 237289 [details]
patch for relanding
This has a fix for the crash that Alexey saw.
Attachment 237289 [details] did not pass style-queue:
ERROR: Source/JavaScriptCore/bytecode/CallEdgeProfile.cpp:70: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3]
ERROR: Source/WTF/wtf/Spectrum.h:114: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3]
ERROR: Source/JavaScriptCore/dfg/DFGNode.h:182: Should be indented on a separate line, with the colon or comma first on that line. [whitespace/indent] [4]
Total errors found: 3 in 74 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Comment on attachment 237289 [details] patch for relanding Attachment 237289 [details] did not pass mac-wk2-ews (mac-wk2): Output: http://webkit-queues.appspot.com/results/6048694088499200 New failing tests: canvas/philip/tests/2d.clearRect+fillRect.basic.html canvas/philip/tests/2d.clearRect+fillRect.alpha0.5.html canvas/philip/tests/2d.clearRect+fillRect.alpha0.html Created attachment 237300 [details]
Archive of layout-test-results from webkit-ews-16 for mac-mountainlion-wk2
The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews.
Bot: webkit-ews-16 Port: mac-mountainlion-wk2 Platform: Mac OS X 10.8.5
Landed in http://trac.webkit.org/changeset/173069 |