RESOLVED FIXED 145769
It should be possible to hoist all constants in DFG SSA
https://bugs.webkit.org/show_bug.cgi?id=145769
Summary It should be possible to hoist all constants in DFG SSA
Filip Pizlo
Reported 2015-06-08 14:05:23 PDT
Patch forthcoming.
Attachments
the patch (16.00 KB, patch)
2015-06-08 14:16 PDT, Filip Pizlo
ggaren: review+
Filip Pizlo
Comment 1 2015-06-08 14:16:45 PDT
Created attachment 254506 [details] the patch
WebKit Commit Bot
Comment 2 2015-06-08 14:19:54 PDT
Attachment 254506 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/dfg/DFGConstantHoistingPhase.cpp:114: Place brace on its own line for function definitions. [whitespace/braces] [4] Total errors found: 1 in 7 files If any of these errors are false positives, please file a bug against check-webkit-style.
Geoffrey Garen
Comment 3 2015-06-08 14:41:56 PDT
Comment on attachment 254506 [details] the patch r=me
Filip Pizlo
Comment 4 2015-06-08 17:44:54 PDT
Looks perf neutral: Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on dethklok (MacBookPro9,1). VMs tested: "TipOfTree" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r185329) "ConstantHoist" at /Volumes/Data/pizlo/tertiary/OpenSource/WebKitBuild/Release/jsc (r185329) 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 ConstantHoist SunSpider: 3d-cube 5.1905+-0.1446 ? 5.2110+-0.1238 ? 3d-morph 5.7809+-0.0580 ? 5.8153+-0.1463 ? 3d-raytrace 6.4148+-0.1998 ? 6.6250+-0.2737 ? might be 1.0328x slower access-binary-trees 2.4199+-0.1696 2.4113+-0.0982 access-fannkuch 6.2526+-0.1441 ? 6.3081+-0.1118 ? access-nbody 3.0902+-0.2751 ? 3.1158+-0.2796 ? access-nsieve 3.4222+-0.3086 ? 3.5197+-0.2417 ? might be 1.0285x slower bitops-3bit-bits-in-byte 1.6946+-0.1974 1.6370+-0.0705 might be 1.0352x faster bitops-bits-in-byte 3.9851+-0.2997 3.7701+-0.0525 might be 1.0570x faster bitops-bitwise-and 2.3533+-0.2755 2.1381+-0.0188 might be 1.1007x faster bitops-nsieve-bits 3.2521+-0.0299 ? 3.3138+-0.1479 ? might be 1.0190x slower controlflow-recursive 3.3686+-0.5257 3.0594+-0.4200 might be 1.1010x faster crypto-aes 4.8433+-0.5181 ? 4.8958+-0.5853 ? might be 1.0108x slower crypto-md5 2.8102+-0.1968 2.6851+-0.0812 might be 1.0466x faster crypto-sha1 3.9220+-0.6100 ? 4.1162+-0.6927 ? might be 1.0495x slower date-format-tofte 9.3025+-0.2001 ? 9.4760+-0.4065 ? might be 1.0187x slower date-format-xparb 5.8636+-0.1143 ? 5.9362+-0.2152 ? might be 1.0124x slower math-cordic 3.1750+-0.1770 3.1694+-0.0769 math-partial-sums 5.8911+-0.8117 5.3384+-0.1270 might be 1.1035x faster math-spectral-norm 2.1181+-0.1328 2.1129+-0.1672 regexp-dna 7.5564+-0.4120 ? 7.6121+-0.6034 ? string-base64 4.9773+-0.1143 ? 5.3009+-0.8662 ? might be 1.0650x slower string-fasta 6.8621+-0.4076 6.7618+-0.0937 might be 1.0148x faster string-tagcloud 10.7631+-1.7154 9.4046+-0.4716 might be 1.1444x faster string-unpack-code 20.3161+-0.3888 ? 21.2585+-0.9531 ? might be 1.0464x slower string-validate-input 6.2625+-0.8315 6.0096+-0.1282 might be 1.0421x faster <arithmetic> 5.4572+-0.1119 5.4232+-0.0737 might be 1.0063x faster TipOfTree ConstantHoist LongSpider: 3d-cube 899.8883+-9.5776 ? 902.2764+-6.0677 ? 3d-morph 1534.5589+-6.2528 1529.8740+-5.5834 3d-raytrace 693.9443+-4.4695 ? 721.6464+-43.1401 ? might be 1.0399x slower access-binary-trees 1001.3201+-4.9479 ? 1002.6578+-9.8515 ? access-fannkuch 347.6320+-13.4340 ? 348.0805+-4.8022 ? access-nbody 589.0511+-1.7646 ? 601.6110+-27.6800 ? might be 1.0213x slower access-nsieve 470.3921+-4.4422 ? 474.2583+-4.5510 ? bitops-3bit-bits-in-byte 45.7529+-2.0202 45.6231+-1.9731 bitops-bits-in-byte 100.5552+-3.8436 99.4607+-0.5836 might be 1.0110x faster bitops-nsieve-bits 421.7524+-3.2400 421.5780+-7.4578 controlflow-recursive 502.7061+-19.0438 499.2059+-9.1647 crypto-aes 703.9499+-9.9214 ? 719.5709+-33.8839 ? might be 1.0222x slower crypto-md5 535.4143+-8.4366 523.4928+-6.7065 might be 1.0228x faster crypto-sha1 693.8454+-34.8003 ? 702.3683+-22.2470 ? might be 1.0123x slower date-format-tofte 735.1900+-8.3598 733.3776+-20.5206 date-format-xparb 828.7050+-11.3742 ? 831.6282+-77.2818 ? hash-map 182.5245+-6.2201 180.8710+-3.5663 math-cordic 578.5544+-2.2914 ? 588.5370+-28.5773 ? might be 1.0173x slower math-partial-sums 505.8772+-2.4012 ? 513.3777+-16.1653 ? might be 1.0148x slower math-spectral-norm 566.5055+-4.0826 564.6477+-1.8944 string-base64 412.3826+-5.7506 408.0068+-5.0046 might be 1.0107x faster string-fasta 429.4554+-6.3007 ? 432.1259+-15.2928 ? string-tagcloud 193.7277+-3.0414 ? 194.0694+-2.4983 ? <geometric> 456.7107+-1.7198 ? 458.1778+-2.6411 ? might be 1.0032x slower TipOfTree ConstantHoist V8Spider: crypto 56.9349+-1.8914 ? 58.9843+-5.5688 ? might be 1.0360x slower deltablue 103.7149+-3.6503 103.3863+-3.4300 earley-boyer 49.8442+-1.3761 49.8123+-3.2052 raytrace 42.4454+-1.6522 ? 43.2961+-0.8656 ? might be 1.0200x slower regexp 84.0723+-2.6997 82.6196+-1.9786 might be 1.0176x faster richards 77.1652+-2.3025 ? 80.2399+-1.9440 ? might be 1.0398x slower splay 39.8512+-2.7392 39.0020+-2.0221 might be 1.0218x faster <geometric> 61.2099+-1.2199 ? 61.6387+-1.0732 ? might be 1.0070x slower TipOfTree ConstantHoist Octane: encrypt 0.20727+-0.00796 0.20365+-0.00076 might be 1.0178x faster decrypt 3.79528+-0.56110 3.57771+-0.02614 might be 1.0608x faster deltablue x2 0.19583+-0.00179 0.19481+-0.00149 earley 0.39138+-0.00214 ? 0.39449+-0.01228 ? boyer 5.17421+-0.06158 ? 5.29909+-0.23805 ? might be 1.0241x slower navier-stokes x2 5.17948+-0.01328 5.17715+-0.00991 raytrace x2 1.30078+-0.06137 ? 1.30451+-0.03874 ? richards x2 0.12781+-0.00190 0.12750+-0.00122 splay x2 0.42016+-0.05206 ? 0.42400+-0.05471 ? regexp x2 31.99489+-0.57891 31.60474+-0.15264 might be 1.0123x faster pdfjs x2 42.31501+-0.17406 ? 42.41507+-0.44774 ? mandreel x2 51.08820+-0.28872 ? 51.09806+-0.27307 ? gbemu x2 42.31862+-0.17632 ? 42.63347+-0.92226 ? closure 0.58781+-0.07406 0.56162+-0.00251 might be 1.0466x faster jquery 7.39806+-0.10013 7.33963+-0.04746 box2d x2 11.84630+-0.03203 ? 11.86728+-0.04846 ? zlib x2 401.05261+-20.73425 393.54989+-2.26911 might be 1.0191x faster typescript x2 823.27344+-18.75401 815.53076+-14.72110 <geometric> 6.63082+-0.06635 6.60111+-0.04003 might be 1.0045x faster TipOfTree ConstantHoist Kraken: ai-astar 240.324+-8.352 236.530+-2.883 might be 1.0160x faster audio-beat-detection 82.525+-0.883 82.303+-0.980 audio-dft 119.070+-2.651 ? 120.689+-2.698 ? might be 1.0136x slower audio-fft 69.572+-0.745 ? 70.465+-1.421 ? might be 1.0128x slower audio-oscillator 85.629+-14.955 77.974+-1.784 might be 1.0982x faster imaging-darkroom 107.026+-1.590 105.144+-1.919 might be 1.0179x faster imaging-desaturate 64.368+-1.809 ? 64.500+-2.011 ? imaging-gaussian-blur 110.741+-2.142 110.347+-1.332 json-parse-financial 47.366+-1.752 ? 49.771+-2.975 ? might be 1.0508x slower json-stringify-tinderbox 30.114+-2.326 29.157+-1.474 might be 1.0328x faster stanford-crypto-aes 58.302+-1.057 ? 59.354+-3.265 ? might be 1.0180x slower stanford-crypto-ccm 49.964+-4.740 49.095+-2.886 might be 1.0177x faster stanford-crypto-pbkdf2 110.292+-0.742 ? 114.677+-8.681 ? might be 1.0398x slower stanford-crypto-sha256-iterative 44.153+-2.061 43.252+-1.268 might be 1.0208x faster <arithmetic> 87.103+-1.373 86.661+-1.022 might be 1.0051x faster TipOfTree ConstantHoist JSRegress: abs-boolean 2.8713+-0.2937 2.7562+-0.1058 might be 1.0417x faster adapt-to-double-divide 16.6573+-0.1742 16.5452+-0.1567 aliased-arguments-getbyval 1.2799+-0.0703 ? 1.4224+-0.2126 ? might be 1.1113x slower allocate-big-object 3.1321+-0.3169 2.9790+-0.2399 might be 1.0514x faster arguments-named-and-reflective 13.1642+-1.5242 12.5796+-0.4262 might be 1.0465x faster arguments-out-of-bounds 14.6690+-0.2534 ? 15.0043+-1.2046 ? might be 1.0229x slower arguments-strict-mode 10.9423+-0.6186 ? 11.0407+-0.2255 ? arguments 9.5836+-0.2174 ? 9.6928+-0.5952 ? might be 1.0114x slower arity-mismatch-inlining 0.8863+-0.0226 ? 0.9937+-0.1219 ? might be 1.1211x slower array-access-polymorphic-structure 7.3014+-0.9420 7.1548+-0.7138 might be 1.0205x faster array-nonarray-polymorhpic-access 33.1956+-0.7442 32.9424+-0.6434 array-prototype-every 84.4364+-0.9787 ! 89.4757+-3.3117 ! definitely 1.0597x slower array-prototype-forEach 84.3387+-1.5178 ? 85.6385+-2.9512 ? might be 1.0154x slower array-prototype-map 92.4459+-3.4327 91.5832+-2.5331 array-prototype-reduce 81.7014+-1.8027 81.0855+-2.2317 array-prototype-reduceRight 84.1137+-3.7376 80.6069+-2.4744 might be 1.0435x faster array-prototype-some 86.0637+-1.9672 ? 86.5483+-1.4144 ? array-splice-contiguous 42.5905+-2.0506 ? 45.0503+-0.9775 ? might be 1.0578x slower array-with-double-add 4.3363+-0.2031 4.3281+-0.2840 array-with-double-increment 3.3314+-0.0418 ? 3.6353+-0.3821 ? might be 1.0912x slower array-with-double-mul-add 5.2308+-0.0771 ? 5.3130+-0.1543 ? might be 1.0157x slower array-with-double-sum 3.4944+-0.3300 3.3569+-0.0304 might be 1.0410x faster array-with-int32-add-sub 6.8543+-0.1550 ? 6.9067+-0.2286 ? array-with-int32-or-double-sum 3.4190+-0.0886 ? 3.5518+-0.3558 ? might be 1.0388x slower ArrayBuffer-DataView-alloc-large-long-lived 37.7281+-1.2373 36.6217+-0.8256 might be 1.0302x faster ArrayBuffer-DataView-alloc-long-lived 14.3468+-0.9699 ? 14.6777+-1.3863 ? might be 1.0231x slower ArrayBuffer-Int32Array-byteOffset 3.9678+-0.1466 3.7877+-0.1017 might be 1.0475x faster ArrayBuffer-Int8Array-alloc-large-long-lived 38.8553+-1.5759 38.5875+-1.5555 ArrayBuffer-Int8Array-alloc-long-lived-buffer 22.6198+-1.0701 ? 24.8127+-3.0675 ? might be 1.0969x slower ArrayBuffer-Int8Array-alloc-long-lived 13.5971+-0.2494 ? 15.4095+-1.8208 ? might be 1.1333x slower ArrayBuffer-Int8Array-alloc 10.6881+-0.6670 ? 11.7620+-1.8098 ? might be 1.1005x slower asmjs_bool_bug 7.9373+-0.3320 7.8310+-0.2336 might be 1.0136x faster assign-custom-setter-polymorphic 3.4083+-0.4142 3.2852+-0.1055 might be 1.0375x faster assign-custom-setter 4.4944+-0.3351 ? 4.7183+-0.2083 ? might be 1.0498x slower basic-set 9.3878+-0.1496 ? 9.4096+-0.2518 ? big-int-mul 4.1813+-0.1943 ? 4.2363+-0.0517 ? might be 1.0131x slower boolean-test 3.2216+-0.1411 3.2017+-0.1592 branch-fold 4.0647+-0.2808 3.9686+-0.0782 might be 1.0242x faster branch-on-string-as-boolean 22.2756+-1.6551 20.9103+-0.6449 might be 1.0653x faster by-val-generic 8.2452+-0.2883 8.0111+-0.1039 might be 1.0292x faster call-spread-apply 31.1881+-1.5687 30.3656+-1.7376 might be 1.0271x faster call-spread-call 25.8174+-1.3690 ? 26.3216+-0.8537 ? might be 1.0195x slower captured-assignments 0.5306+-0.0685 ? 0.5472+-0.0730 ? might be 1.0312x slower cast-int-to-double 5.3573+-0.1166 ? 5.3735+-0.2274 ? cell-argument 8.6601+-0.1113 8.6365+-0.4529 cfg-simplify 2.8628+-0.0997 ? 2.8814+-0.0923 ? chain-getter-access 9.3143+-0.1732 ? 9.3315+-0.1612 ? cmpeq-obj-to-obj-other 12.1896+-1.4678 ? 12.5878+-1.1164 ? might be 1.0327x slower constant-test 5.2010+-0.4658 5.1283+-0.2088 might be 1.0142x faster create-lots-of-functions 11.4607+-0.1634 ? 11.6482+-0.3654 ? might be 1.0164x slower cse-new-array-buffer 2.5240+-0.0825 ? 2.5414+-0.1220 ? cse-new-array 2.6862+-0.1303 2.6191+-0.0608 might be 1.0256x faster DataView-custom-properties 43.9000+-2.2262 43.6269+-0.9457 deconstructing-parameters-overridden-by-function 0.5689+-0.0244 ? 0.6038+-0.0763 ? might be 1.0614x slower delay-tear-off-arguments-strictmode 14.4110+-0.5004 ? 14.6395+-1.1581 ? might be 1.0159x slower deltablue-varargs 213.0797+-7.2470 211.5413+-2.8827 destructuring-arguments 19.2273+-5.0510 17.5578+-0.9068 might be 1.0951x faster destructuring-swap 5.2122+-0.3205 ? 6.2696+-2.8324 ? might be 1.2029x slower direct-arguments-getbyval 1.3941+-0.1329 1.3295+-0.0534 might be 1.0486x faster div-boolean-double 5.3719+-0.1844 5.3227+-0.1281 div-boolean 7.9856+-0.2784 7.8074+-0.0310 might be 1.0228x faster double-get-by-val-out-of-bounds 4.6423+-0.1175 4.5951+-0.0462 might be 1.0103x faster double-pollution-getbyval 8.9722+-0.1340 8.8637+-0.0410 might be 1.0122x faster double-pollution-putbyoffset 4.6997+-0.4611 4.5253+-0.2640 might be 1.0385x faster double-real-use 30.2176+-1.1492 ? 30.6385+-1.7599 ? might be 1.0139x slower double-to-int32-typed-array-no-inline 2.6274+-0.4052 2.4102+-0.0910 might be 1.0901x faster double-to-int32-typed-array 2.0750+-0.2215 ? 2.0794+-0.2475 ? double-to-uint32-typed-array-no-inline 2.8531+-0.3401 ? 3.0054+-0.4200 ? might be 1.0534x slower double-to-uint32-typed-array 2.0641+-0.0787 ? 2.2014+-0.3252 ? might be 1.0665x slower elidable-new-object-dag 43.3749+-1.5516 42.8007+-0.7961 might be 1.0134x faster elidable-new-object-roflcopter 44.4569+-1.9128 43.7347+-0.6135 might be 1.0165x faster elidable-new-object-then-call 40.1584+-1.1678 39.4405+-0.8656 might be 1.0182x faster elidable-new-object-tree 46.7695+-1.6738 45.8501+-1.6681 might be 1.0201x faster empty-string-plus-int 5.6633+-0.1482 5.5802+-0.1664 might be 1.0149x faster emscripten-cube2hash 38.8984+-2.0742 38.5778+-0.9883 exit-length-on-plain-object 14.9644+-1.6552 14.5751+-1.1996 might be 1.0267x faster external-arguments-getbyval 1.3518+-0.1300 1.3060+-0.0611 might be 1.0351x faster external-arguments-putbyval 2.4855+-0.2536 ? 2.4867+-0.2208 ? fixed-typed-array-storage-var-index 1.2766+-0.1574 ? 1.3292+-0.1297 ? might be 1.0412x slower fixed-typed-array-storage 0.9368+-0.0485 0.9075+-0.0146 might be 1.0322x faster Float32Array-matrix-mult 4.5430+-0.1033 ? 4.5933+-0.1230 ? might be 1.0111x slower Float32Array-to-Float64Array-set 52.2341+-2.2112 ? 54.3432+-2.3812 ? might be 1.0404x slower Float64Array-alloc-long-lived 88.4771+-2.2067 87.3700+-0.9282 might be 1.0127x faster Float64Array-to-Int16Array-set 73.4270+-3.6362 69.0875+-1.9023 might be 1.0628x faster fold-double-to-int 14.6843+-2.1352 14.1468+-1.0461 might be 1.0380x faster fold-get-by-id-to-multi-get-by-offset-rare-int 9.3309+-0.2519 9.2278+-0.5591 might be 1.0112x faster fold-get-by-id-to-multi-get-by-offset 9.8135+-1.7480 ? 9.8197+-1.5557 ? fold-multi-get-by-offset-to-get-by-offset 9.9742+-0.4109 9.8749+-0.9864 might be 1.0101x faster fold-multi-get-by-offset-to-poly-get-by-offset 9.1765+-0.8495 9.0284+-0.3277 might be 1.0164x faster fold-multi-put-by-offset-to-poly-put-by-offset 10.3045+-1.1049 ? 10.4015+-1.2295 ? fold-multi-put-by-offset-to-put-by-offset 8.3129+-0.3605 7.7842+-1.2219 might be 1.0679x faster fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 10.1005+-0.3765 9.8133+-0.7505 might be 1.0293x faster fold-put-by-id-to-multi-put-by-offset 10.3434+-0.8527 10.1353+-1.5065 might be 1.0205x faster fold-put-structure 7.5798+-1.1195 ? 7.7767+-0.2244 ? might be 1.0260x slower for-of-iterate-array-entries 4.7368+-0.4731 4.5697+-0.1060 might be 1.0366x faster for-of-iterate-array-keys 3.7167+-0.1510 ? 4.1612+-0.5102 ? might be 1.1196x slower for-of-iterate-array-values 3.7527+-0.3895 3.6665+-0.3182 might be 1.0235x faster fround 21.4285+-0.9734 21.0123+-0.8047 might be 1.0198x faster ftl-library-inlining-dataview 66.4941+-2.5456 65.7843+-1.1684 might be 1.0108x faster ftl-library-inlining 66.4814+-0.4265 ? 69.5137+-6.2624 ? might be 1.0456x slower function-dot-apply 2.2976+-0.0789 2.2949+-0.0831 function-test 2.9349+-0.1051 ? 2.9977+-0.2487 ? might be 1.0214x slower function-with-eval 102.1387+-1.3140 ? 103.7220+-1.8955 ? might be 1.0155x slower gcse-poly-get-less-obvious 20.0410+-1.6663 ^ 17.9240+-0.3447 ^ definitely 1.1181x faster gcse-poly-get 19.8573+-1.4921 ? 20.9814+-1.8873 ? might be 1.0566x slower gcse 5.1301+-1.6052 4.3710+-0.0935 might be 1.1737x faster get-by-id-bimorphic-check-structure-elimination-simple 2.9052+-0.1053 2.8695+-0.1576 might be 1.0124x faster get-by-id-bimorphic-check-structure-elimination 6.2792+-0.2416 6.1983+-0.2215 might be 1.0131x faster get-by-id-chain-from-try-block 6.8930+-0.3292 ? 6.9840+-0.7091 ? might be 1.0132x slower get-by-id-check-structure-elimination 5.1050+-0.0529 ? 5.2939+-0.3823 ? might be 1.0370x slower get-by-id-proto-or-self 18.8999+-1.0831 ? 19.7992+-1.9298 ? might be 1.0476x slower get-by-id-quadmorphic-check-structure-elimination-simple 2.9675+-0.0563 ? 3.4423+-0.8856 ? might be 1.1600x slower get-by-id-self-or-proto 19.3208+-1.7043 ? 19.6383+-1.6561 ? might be 1.0164x slower get-by-val-out-of-bounds 4.5111+-0.1109 ? 4.5137+-0.0972 ? get_callee_monomorphic 2.8380+-0.0891 ? 2.9406+-0.3969 ? might be 1.0362x slower get_callee_polymorphic 4.4562+-1.9042 3.9699+-0.2492 might be 1.1225x faster getter-no-activation 5.7028+-1.1794 5.4679+-0.5231 might be 1.0430x faster getter-prototype 16.1124+-1.0819 ? 16.1353+-2.0867 ? getter-richards 121.9395+-3.7210 ? 128.6984+-8.7209 ? might be 1.0554x slower getter 5.6226+-0.3670 ? 5.6616+-0.5436 ? global-var-const-infer-fire-from-opt 0.9366+-0.0436 ? 0.9818+-0.1274 ? might be 1.0482x slower global-var-const-infer 1.0145+-0.1108 0.9266+-0.1244 might be 1.0948x faster HashMap-put-get-iterate-keys 31.7357+-1.5167 29.8135+-1.3897 might be 1.0645x faster HashMap-put-get-iterate 33.4705+-4.4100 31.5839+-1.6534 might be 1.0597x faster HashMap-string-put-get-iterate 32.0073+-1.7948 31.4904+-2.0963 might be 1.0164x faster hoist-make-rope 11.8065+-0.5291 ? 12.4762+-0.7274 ? might be 1.0567x slower hoist-poly-check-structure-effectful-loop 5.1027+-0.0517 ? 5.1380+-0.1025 ? hoist-poly-check-structure 3.8223+-0.1708 ? 3.8839+-0.4161 ? might be 1.0161x slower imul-double-only 9.3226+-1.4103 8.4269+-1.3016 might be 1.1063x faster imul-int-only 9.9994+-0.2671 9.7561+-0.3153 might be 1.0249x faster imul-mixed 8.3759+-0.4900 ? 8.3850+-0.1820 ? in-four-cases 22.8498+-1.6510 22.2200+-0.1938 might be 1.0283x faster in-one-case-false 11.0776+-0.1746 ? 11.0978+-0.2127 ? in-one-case-true 11.1313+-0.3249 11.0668+-0.1554 in-two-cases 11.6450+-0.1241 ? 11.6975+-0.1236 ? indexed-properties-in-objects 3.0509+-0.1207 ? 3.0874+-0.3539 ? might be 1.0120x slower infer-closure-const-then-mov-no-inline 4.4972+-0.4224 ? 4.5172+-0.4536 ? infer-closure-const-then-mov 20.0269+-0.4979 19.9999+-0.4377 infer-closure-const-then-put-to-scope-no-inline 12.7876+-0.2378 ? 13.1168+-0.9109 ? might be 1.0257x slower infer-closure-const-then-put-to-scope 21.7815+-0.7816 ? 22.6451+-2.0375 ? might be 1.0396x slower infer-closure-const-then-reenter-no-inline 54.4793+-1.5831 54.4405+-1.3881 infer-closure-const-then-reenter 22.7304+-0.8868 ? 23.1579+-1.7338 ? might be 1.0188x slower infer-constant-global-property 3.7245+-0.2670 ? 3.7673+-0.4803 ? might be 1.0115x slower infer-constant-property 2.7846+-0.1113 ? 2.8322+-0.2336 ? might be 1.0171x slower infer-one-time-closure-ten-vars 13.1092+-1.5959 13.0938+-0.8626 infer-one-time-closure-two-vars 12.8743+-1.3267 12.7542+-1.5078 infer-one-time-closure 12.2001+-0.9396 ? 12.5805+-1.2955 ? might be 1.0312x slower infer-one-time-deep-closure 21.1034+-0.8862 ? 21.7918+-1.3799 ? might be 1.0326x slower inline-arguments-access 4.6736+-0.2372 ? 4.7618+-0.2240 ? might be 1.0189x slower inline-arguments-aliased-access 4.9224+-0.5245 4.7370+-0.2008 might be 1.0391x faster inline-arguments-local-escape 4.7113+-0.1966 ? 4.7233+-0.1651 ? inline-get-scoped-var 4.9920+-0.3654 4.9298+-0.3223 might be 1.0126x faster inlined-put-by-id-transition 12.0403+-0.6317 ? 12.1220+-0.9503 ? int-or-other-abs-then-get-by-val 5.0123+-0.0456 ? 5.1349+-0.1356 ? might be 1.0245x slower int-or-other-abs-zero-then-get-by-val 17.9183+-1.3733 17.6662+-0.2366 might be 1.0143x faster int-or-other-add-then-get-by-val 4.4227+-0.0801 4.3813+-0.1176 int-or-other-add 5.3876+-0.0832 ? 5.4401+-0.1393 ? int-or-other-div-then-get-by-val 4.3436+-0.1802 ? 4.4080+-0.2066 ? might be 1.0148x slower int-or-other-max-then-get-by-val 4.3997+-0.1918 4.3606+-0.0282 int-or-other-min-then-get-by-val 4.7006+-0.4169 4.4203+-0.2642 might be 1.0634x faster int-or-other-mod-then-get-by-val 4.1186+-0.2348 3.9755+-0.0200 might be 1.0360x faster int-or-other-mul-then-get-by-val 3.9865+-0.0662 ? 4.0636+-0.2333 ? might be 1.0194x slower int-or-other-neg-then-get-by-val 4.8674+-0.1796 4.8280+-0.0550 int-or-other-neg-zero-then-get-by-val 18.4548+-0.8506 17.6290+-0.4021 might be 1.0468x faster int-or-other-sub-then-get-by-val 4.6642+-0.3748 ? 5.2167+-1.7775 ? might be 1.1185x slower int-or-other-sub 3.7206+-0.2339 ? 3.7419+-0.1997 ? int-overflow-local 4.5920+-0.0565 ? 4.6178+-0.0442 ? Int16Array-alloc-long-lived 53.2828+-2.0601 53.1465+-1.1523 Int16Array-bubble-sort-with-byteLength 20.0312+-0.2819 ? 20.6788+-0.6948 ? might be 1.0323x slower Int16Array-bubble-sort 20.2790+-0.2736 20.0378+-0.1527 might be 1.0120x faster Int16Array-load-int-mul 1.5470+-0.0697 ? 1.7689+-0.2545 ? might be 1.1434x slower Int16Array-to-Int32Array-set 53.9492+-1.7104 53.1722+-1.6087 might be 1.0146x faster Int32Array-alloc-large 24.6069+-0.7034 ? 24.7122+-1.1918 ? Int32Array-alloc-long-lived 63.8563+-1.0959 ? 64.0354+-1.1268 ? Int32Array-alloc 3.3277+-0.1510 ? 3.3969+-0.2530 ? might be 1.0208x slower Int32Array-Int8Array-view-alloc 6.9572+-0.9834 ? 7.2013+-0.3803 ? might be 1.0351x slower int52-spill 5.8684+-0.3992 5.6464+-0.0740 might be 1.0393x faster Int8Array-alloc-long-lived 47.5463+-1.2790 47.3041+-1.5633 Int8Array-load-with-byteLength 3.5201+-0.1505 ? 3.5541+-0.2240 ? Int8Array-load 3.4350+-0.0359 ? 3.5590+-0.2409 ? might be 1.0361x slower integer-divide 11.1222+-0.1440 11.0352+-0.3993 integer-modulo 2.1667+-0.0957 2.1597+-0.0209 is-boolean-fold-tricky 4.7400+-0.3916 4.6836+-0.5712 might be 1.0121x faster is-boolean-fold 2.9723+-0.1280 ? 3.1556+-0.4175 ? might be 1.0616x slower is-function-fold-tricky-internal-function 11.9545+-0.1382 ? 12.1724+-0.2883 ? might be 1.0182x slower is-function-fold-tricky 5.0771+-1.1100 4.7358+-0.3242 might be 1.0721x faster is-function-fold 2.9577+-0.0850 ? 3.0086+-0.2129 ? might be 1.0172x slower is-number-fold-tricky 4.5040+-0.0627 ? 4.6963+-0.3810 ? might be 1.0427x slower is-number-fold 2.9100+-0.0411 ? 3.0509+-0.3691 ? might be 1.0484x slower is-object-or-null-fold-functions 3.0028+-0.1211 ? 3.0937+-0.3639 ? might be 1.0302x slower is-object-or-null-fold-less-tricky 4.6232+-0.1085 4.5550+-0.0500 might be 1.0150x faster is-object-or-null-fold-tricky 6.8507+-0.3219 6.6581+-0.0420 might be 1.0289x faster is-object-or-null-fold 3.0914+-0.2358 2.9061+-0.0300 might be 1.0637x faster is-object-or-null-trickier-function 4.7389+-0.1547 4.6508+-0.1317 might be 1.0189x faster is-object-or-null-trickier-internal-function 12.5949+-0.2651 ? 13.0823+-0.4367 ? might be 1.0387x slower is-object-or-null-tricky-function 4.6908+-0.0532 ? 4.8968+-0.5103 ? might be 1.0439x slower is-object-or-null-tricky-internal-function 9.2618+-0.0559 ! 9.5420+-0.0579 ! definitely 1.0303x slower is-string-fold-tricky 4.7120+-0.4326 4.5647+-0.2607 might be 1.0323x faster is-string-fold 3.0933+-0.3504 2.8944+-0.0581 might be 1.0687x faster is-undefined-fold-tricky 3.8645+-0.1830 3.8501+-0.1514 is-undefined-fold 3.0325+-0.4424 2.9438+-0.1055 might be 1.0301x faster large-int-captured 4.8219+-0.0828 ? 4.8720+-0.1145 ? might be 1.0104x slower large-int-neg 16.1640+-0.1742 ? 16.8346+-1.4074 ? might be 1.0415x slower large-int 15.3652+-1.4604 ? 15.4913+-0.9915 ? load-varargs-elimination 22.3304+-0.2357 ? 23.7264+-1.5723 ? might be 1.0625x slower logical-not-weird-types 3.2769+-0.0338 ? 3.3829+-0.2138 ? might be 1.0323x slower logical-not 4.6984+-0.2682 4.5717+-0.0279 might be 1.0277x faster lots-of-fields 11.8903+-0.0483 ! 12.1395+-0.1681 ! definitely 1.0210x slower make-indexed-storage 3.4113+-0.5774 3.1505+-0.2720 might be 1.0828x faster make-rope-cse 11.3118+-1.5322 10.8823+-0.4350 might be 1.0395x faster marsaglia-larger-ints 35.9072+-0.5292 ? 36.7010+-1.3487 ? might be 1.0221x slower marsaglia-osr-entry 23.9455+-1.5303 23.5087+-1.7651 might be 1.0186x faster math-with-out-of-bounds-array-values 24.7326+-1.4374 ? 24.8272+-0.6683 ? max-boolean 2.6660+-0.3135 2.5433+-0.0570 might be 1.0482x faster method-on-number 17.8754+-0.3998 ? 19.1874+-2.3376 ? might be 1.0734x slower min-boolean 2.6582+-0.1926 ? 2.7609+-0.2810 ? might be 1.0386x slower minus-boolean-double 3.3616+-0.4258 3.3016+-0.2673 might be 1.0182x faster minus-boolean 2.5460+-0.3513 2.4318+-0.0797 might be 1.0470x faster misc-strict-eq 42.4609+-4.1822 41.0315+-4.4952 might be 1.0348x faster mod-boolean-double 10.8825+-0.0736 ? 10.9826+-0.2125 ? mod-boolean 7.8872+-0.0399 7.8755+-0.0422 mul-boolean-double 3.7212+-0.0860 ? 3.9030+-0.4898 ? might be 1.0489x slower mul-boolean 3.1909+-0.4086 3.0435+-0.3346 might be 1.0484x faster neg-boolean 3.2476+-0.1946 ? 3.3080+-0.1811 ? might be 1.0186x slower negative-zero-divide 0.3970+-0.0162 ? 0.4011+-0.0163 ? might be 1.0105x slower negative-zero-modulo 0.4046+-0.0483 0.3787+-0.0194 might be 1.0686x faster negative-zero-negate 0.4041+-0.0481 0.3933+-0.0590 might be 1.0276x faster nested-function-parsing 39.4994+-0.5912 ? 39.5239+-1.3114 ? new-array-buffer-dead 113.4438+-2.5774 112.3669+-2.4610 new-array-buffer-push 7.8321+-1.0153 7.4580+-1.1056 might be 1.0502x faster new-array-dead 19.6292+-0.6709 19.4284+-0.7691 might be 1.0103x faster new-array-push 6.1790+-0.1504 6.1744+-0.1155 no-inline-constructor 41.2442+-1.3777 41.1107+-1.2848 number-test 3.2908+-0.3544 3.2465+-0.3240 might be 1.0136x faster object-closure-call 5.7754+-0.1427 ? 5.8127+-0.2237 ? object-test 3.0911+-0.3366 3.0274+-0.1911 might be 1.0210x faster obvious-sink-pathology-taken 143.6533+-3.1596 140.7263+-2.7034 might be 1.0208x faster obvious-sink-pathology 132.4163+-2.8208 ? 133.8273+-3.1168 ? might be 1.0107x slower obviously-elidable-new-object 35.1533+-0.8747 ? 35.1665+-0.9447 ? plus-boolean-arith 2.5339+-0.0223 ? 2.8560+-0.5994 ? might be 1.1271x slower plus-boolean-double 3.2569+-0.1271 ? 3.3674+-0.3088 ? might be 1.0339x slower plus-boolean 2.4622+-0.0788 ? 2.5780+-0.2981 ? might be 1.0470x slower poly-chain-access-different-prototypes-simple 3.3127+-0.0266 ? 3.4393+-0.2431 ? might be 1.0382x slower poly-chain-access-different-prototypes 2.6479+-0.1113 2.6277+-0.0542 poly-chain-access-simpler 3.3804+-0.2569 3.2928+-0.0517 might be 1.0266x faster poly-chain-access 2.7588+-0.3184 2.7397+-0.1318 poly-stricteq 59.2296+-0.5792 ? 59.7546+-1.0463 ? polymorphic-array-call 1.3863+-0.0688 ? 1.4535+-0.1602 ? might be 1.0485x slower polymorphic-get-by-id 3.2433+-0.0850 3.2384+-0.0701 polymorphic-put-by-id 32.6553+-3.3807 ? 33.0243+-2.0802 ? might be 1.0113x slower polymorphic-structure 15.5360+-1.2755 15.3468+-1.4590 might be 1.0123x faster polyvariant-monomorphic-get-by-id 8.5669+-0.1713 ? 8.6037+-0.0916 ? proto-getter-access 9.2564+-0.0859 ? 9.2961+-0.1989 ? put-by-id-replace-and-transition 9.7572+-0.2873 9.5590+-0.1194 might be 1.0207x faster put-by-id-slightly-polymorphic 2.9642+-0.2929 ? 2.9827+-0.2826 ? put-by-id 13.1200+-0.4546 13.0594+-1.0828 put-by-val-direct 0.4044+-0.0162 ? 0.4057+-0.0268 ? put-by-val-large-index-blank-indexing-type 11.1013+-0.3706 ? 11.3885+-0.6630 ? might be 1.0259x slower put-by-val-machine-int 2.9681+-0.2631 2.8595+-0.1410 might be 1.0380x faster rare-osr-exit-on-local 15.0802+-0.3125 ? 15.0950+-0.2888 ? register-pressure-from-osr 21.4103+-0.2962 ? 21.9145+-1.0469 ? might be 1.0235x slower repeat-multi-get-by-offset 24.6819+-0.7500 ? 25.8874+-1.5100 ? might be 1.0488x slower setter-prototype 10.5059+-0.1768 10.4832+-0.2845 setter 6.3459+-0.7853 6.1691+-0.9291 might be 1.0287x faster simple-activation-demo 26.3317+-1.8727 25.3511+-0.5008 might be 1.0387x faster simple-getter-access 11.7902+-0.2817 11.5360+-0.1361 might be 1.0220x faster simple-poly-call-nested 8.0328+-0.1974 7.9870+-0.3388 simple-poly-call 1.3451+-0.0565 ? 1.4066+-0.1045 ? might be 1.0457x slower sin-boolean 22.5900+-0.8186 ? 23.3405+-0.7655 ? might be 1.0332x slower singleton-scope 62.0996+-0.6135 ? 62.6289+-0.7676 ? sink-function 12.1945+-0.3367 12.0929+-0.3496 sink-huge-activation 18.8544+-0.3792 18.6322+-0.3319 might be 1.0119x faster sinkable-new-object-dag 71.5751+-2.5810 69.8277+-1.4094 might be 1.0250x faster sinkable-new-object-taken 51.8683+-3.3728 ? 52.8498+-3.5060 ? might be 1.0189x slower sinkable-new-object 40.0722+-1.0245 39.2404+-1.4361 might be 1.0212x faster slow-array-profile-convergence 3.1500+-0.2163 2.8945+-0.1160 might be 1.0883x faster slow-convergence 2.7613+-0.0559 ? 2.9335+-0.3199 ? might be 1.0624x slower slow-ternaries 19.5404+-3.4859 ? 19.7189+-2.6253 ? sorting-benchmark 19.0095+-0.5742 18.6680+-0.3547 might be 1.0183x faster sparse-conditional 1.1869+-0.0273 ? 1.2078+-0.0440 ? might be 1.0176x slower splice-to-remove 15.6342+-1.4394 ? 16.0835+-1.5809 ? might be 1.0287x slower string-char-code-at 16.5457+-1.0257 16.3212+-0.2675 might be 1.0138x faster string-concat-object 2.9373+-0.3463 2.7346+-0.2644 might be 1.0741x faster string-concat-pair-object 2.5177+-0.0507 ! 2.8570+-0.2687 ! definitely 1.1348x slower string-concat-pair-simple 11.8185+-1.4006 ? 12.5192+-1.1945 ? might be 1.0593x slower string-concat-simple 12.3127+-0.9846 ? 12.7688+-1.1528 ? might be 1.0370x slower string-cons-repeat 8.2457+-0.5286 ? 8.9661+-1.1496 ? might be 1.0874x slower string-cons-tower 8.6431+-0.9586 8.6135+-0.7809 string-equality 17.5751+-0.1783 ? 17.7572+-0.2356 ? might be 1.0104x slower string-get-by-val-big-char 7.3878+-0.4314 ? 7.6627+-1.1817 ? might be 1.0372x slower string-get-by-val-out-of-bounds-insane 3.9001+-0.3459 3.7722+-0.2122 might be 1.0339x faster string-get-by-val-out-of-bounds 5.6399+-0.2909 5.5288+-0.0402 might be 1.0201x faster string-get-by-val 3.4281+-0.0704 ? 3.4468+-0.2426 ? string-hash 2.1011+-0.0416 ! 2.1893+-0.0359 ! definitely 1.0420x slower string-long-ident-equality 14.8073+-0.4647 ? 14.9702+-0.3869 ? might be 1.0110x slower string-out-of-bounds 14.8176+-0.1460 ? 15.2540+-0.5062 ? might be 1.0295x slower string-repeat-arith 36.1786+-7.1253 35.0022+-1.8065 might be 1.0336x faster string-sub 68.1272+-4.1982 ? 68.7652+-1.9831 ? string-test 3.0019+-0.0868 ? 3.0551+-0.0780 ? might be 1.0177x slower string-var-equality 32.7478+-1.3131 ? 33.0459+-1.5986 ? structure-hoist-over-transitions 2.7842+-0.1982 ? 2.8310+-0.2115 ? might be 1.0168x slower substring-concat-weird 41.0517+-1.6795 ? 42.2525+-1.5531 ? might be 1.0293x slower substring-concat 44.2938+-1.3762 43.1089+-0.8730 might be 1.0275x faster substring 46.7473+-1.4934 ? 47.3112+-3.1581 ? might be 1.0121x slower switch-char-constant 2.9297+-0.1700 2.9127+-0.1662 switch-char 6.6825+-0.5573 ? 7.1254+-0.8995 ? might be 1.0663x slower switch-constant 9.1783+-1.7556 8.3047+-0.2092 might be 1.1052x faster switch-string-basic-big-var 18.3834+-0.3545 ? 18.6058+-0.7014 ? might be 1.0121x slower switch-string-basic-big 14.9643+-0.2907 14.7377+-0.1633 might be 1.0154x faster switch-string-basic-var 15.6850+-1.0532 15.2221+-0.8067 might be 1.0304x faster switch-string-basic 13.6239+-0.3002 13.5114+-0.0778 switch-string-big-length-tower-var 20.1659+-0.3379 ? 20.1935+-0.3695 ? switch-string-length-tower-var 15.9263+-0.4105 15.6990+-0.7967 might be 1.0145x faster switch-string-length-tower 13.1234+-0.1318 ? 13.1315+-0.1289 ? switch-string-short 13.2197+-0.2232 ? 13.3526+-0.7399 ? might be 1.0101x slower switch 12.7094+-0.1490 12.4357+-0.3149 might be 1.0220x faster tear-off-arguments-simple 4.1470+-1.2686 3.7061+-0.2541 might be 1.1190x faster tear-off-arguments 4.8248+-0.0517 4.8082+-0.0821 temporal-structure 12.1235+-0.1257 ? 12.3769+-0.4445 ? might be 1.0209x slower to-int32-boolean 14.5125+-0.6866 14.1986+-0.7401 might be 1.0221x faster try-catch-get-by-val-cloned-arguments 14.6833+-0.2583 ? 15.6213+-1.7048 ? might be 1.0639x slower try-catch-get-by-val-direct-arguments 6.4893+-0.1663 ? 7.2812+-1.0627 ? might be 1.1220x slower try-catch-get-by-val-scoped-arguments 7.6218+-0.2140 ? 7.8566+-0.3763 ? might be 1.0308x slower typed-array-get-set-by-val-profiling 33.5933+-1.0877 ? 35.2915+-5.7548 ? might be 1.0506x slower undefined-property-access 344.0999+-4.4695 ? 344.7190+-1.7219 ? undefined-test 3.1127+-0.1189 ? 3.1561+-0.1289 ? might be 1.0140x slower unprofiled-licm 22.9484+-0.7259 ? 23.4411+-1.6036 ? might be 1.0215x slower varargs-call 15.1178+-0.2931 14.9310+-0.1853 might be 1.0125x faster varargs-construct-inline 28.6003+-0.7505 28.2862+-0.4615 might be 1.0111x faster varargs-construct 22.8218+-0.3062 22.7153+-0.4382 varargs-inline 9.7566+-0.8298 9.3272+-0.1360 might be 1.0460x faster varargs-strict-mode 10.3469+-0.5334 ? 11.2528+-3.0919 ? might be 1.0876x slower varargs 10.5824+-1.2530 9.9679+-0.0433 might be 1.0616x faster weird-inlining-const-prop 3.3169+-0.2393 3.2897+-0.2122 <geometric> 8.9209+-0.0373 ? 8.9408+-0.0406 ? might be 1.0022x slower TipOfTree ConstantHoist AsmBench: bigfib.cpp 495.1397+-3.5311 ? 500.8327+-9.4691 ? might be 1.0115x slower cray.c 427.7675+-2.0352 ? 431.1413+-6.7089 ? dry.c 485.8196+-4.5712 ? 486.3002+-6.7073 ? FloatMM.c 723.8796+-4.2711 720.6753+-1.9769 gcc-loops.cpp 4108.7445+-29.9701 4099.3307+-16.3642 n-body.c 997.7942+-52.5580 973.5691+-2.8030 might be 1.0249x faster Quicksort.c 418.3252+-4.9764 ? 419.8868+-6.8214 ? stepanov_container.cpp 3584.3220+-11.0539 ? 3597.5699+-20.0675 ? Towers.c 256.0331+-3.1129 255.6049+-1.3092 <geometric> 787.9654+-4.2753 787.5675+-3.5554 might be 1.0005x faster TipOfTree ConstantHoist CompressionBench: huffman 349.6141+-3.2369 ? 353.6247+-2.4012 ? might be 1.0115x slower arithmetic-simple 367.9607+-3.5989 ? 369.0050+-3.2115 ? arithmetic-precise 282.6937+-2.0272 ? 286.5216+-10.0279 ? might be 1.0135x slower arithmetic-complex-precise 282.4171+-4.6466 ? 284.2847+-9.5203 ? arithmetic-precise-order-0 378.8412+-4.2672 ? 381.9559+-14.2840 ? arithmetic-precise-order-1 333.7380+-5.0020 331.3656+-1.6259 arithmetic-precise-order-2 364.6973+-4.0033 ? 378.4667+-34.5954 ? might be 1.0378x slower arithmetic-simple-order-1 428.2606+-1.8698 426.3542+-6.8250 arithmetic-simple-order-2 472.9449+-4.5934 ? 485.9585+-28.6922 ? might be 1.0275x slower lz-string 313.8733+-2.2806 ? 316.1689+-6.2363 ? <geometric> 353.0611+-1.2272 ? 356.5184+-4.2888 ? might be 1.0098x slower TipOfTree ConstantHoist Geomean of preferred means: <scaled-result> 62.0089+-0.3132 ? 62.0547+-0.2158 ? might be 1.0007x slower
Filip Pizlo
Comment 5 2015-06-08 17:46:51 PDT
Note You need to log in before you can comment on or make changes to this bug.