Bug 149106

Summary: LLInt get/put inline caches shouldn't use tons of opcodes
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: JavaScriptCoreAssignee: Filip Pizlo <fpizlo>
Status: RESOLVED FIXED    
Severity: Normal CC: barraclough, benjamin, buildbot, commit-queue, ggaren, mark.lam, mhahnenb, msaboff, nrotem, oliver, rniwa, saam, sam
Priority: P2    
Version: Other   
Hardware: All   
OS: All   
Bug Depends on: 149143    
Bug Blocks: 148610    
Attachments:
Description Flags
work in progress
none
more
none
almost done
buildbot: commit-queue-
Archive of layout-test-results from ews103 for mac-mavericks
none
Archive of layout-test-results from ews104 for mac-mavericks-wk2
none
the patch ggaren: review+

Filip Pizlo
Reported 2015-09-13 12:34:08 PDT
The performance of LLInt get/put inline caches probably has little to do with whether the direct/indirect, inline/out-of-line, transition/replace distinctions are made using different opcodes or branches within a single opcode's implementation. So, we should simplify the code to use a single get_by_id opcode and a single put_by_id opcode. Also, the inline caches should use StructureID's as much as possible. Currently they use Structure*'s waaaay too much.
Attachments
work in progress (46.63 KB, patch)
2015-09-13 12:36 PDT, Filip Pizlo
no flags
more (52.77 KB, patch)
2015-09-13 20:20 PDT, Filip Pizlo
no flags
almost done (65.65 KB, patch)
2015-09-13 21:41 PDT, Filip Pizlo
buildbot: commit-queue-
Archive of layout-test-results from ews103 for mac-mavericks (1.37 MB, application/zip)
2015-09-13 22:52 PDT, Build Bot
no flags
Archive of layout-test-results from ews104 for mac-mavericks-wk2 (1.46 MB, application/zip)
2015-09-13 22:59 PDT, Build Bot
no flags
the patch (62.79 KB, patch)
2015-09-14 13:03 PDT, Filip Pizlo
ggaren: review+
Filip Pizlo
Comment 1 2015-09-13 12:36:05 PDT
Created attachment 261087 [details] work in progress Still need to do the 32-bit parts. Still need to make it build. :-)
Filip Pizlo
Comment 2 2015-09-13 20:20:37 PDT
Created attachment 261094 [details] more 64-bit compiles
Filip Pizlo
Comment 3 2015-09-13 21:41:17 PDT
Created attachment 261099 [details] almost done
WebKit Commit Bot
Comment 4 2015-09-13 21:42:42 PDT
Attachment 261099 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/bytecode/CodeBlock.cpp:2535: Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side. [whitespace/operators] [4] ERROR: Source/JavaScriptCore/bytecode/CodeBlock.cpp:2535: Multi line control clauses should use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/CodeBlock.cpp:2536: Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side. [whitespace/operators] [4] ERROR: Source/JavaScriptCore/bytecode/PutByIdFlags.cpp:37: Place brace on its own line for function definitions. [whitespace/braces] [4] Total errors found: 4 in 21 files If any of these errors are false positives, please file a bug against check-webkit-style.
Build Bot
Comment 5 2015-09-13 22:52:26 PDT
Comment on attachment 261099 [details] almost done Attachment 261099 [details] did not pass mac-ews (mac): Output: http://webkit-queues.webkit.org/results/169267 New failing tests: js/array-reduceRight.html jquery/manipulation.html js/array-length-shortening.html js/array-iterators.html jquery/offset.html js/dfg-inline-arguments-use-from-all-the-places.html js/array-reduce.html js/array-includes.html js/array-every.html jquery/traversing.html js/dfg-inline-arguments-use-from-all-the-places-broken.html js/array-findIndex.html jquery/deferred.html js/array-find.html js/array-sort-sparse.html js/array-fill.html jquery/attributes.html jquery/dimensions.html jquery/data.html js/regress/array-nonarray-polymorhpic-access.html js/array-enumerators-functions.html jquery/core.html jquery/css.html jquery/event.html
Build Bot
Comment 6 2015-09-13 22:52:31 PDT
Created attachment 261104 [details] Archive of layout-test-results from ews103 for mac-mavericks The attached test failures were seen while running run-webkit-tests on the mac-ews. Bot: ews103 Port: mac-mavericks Platform: Mac OS X 10.9.5
Build Bot
Comment 7 2015-09-13 22:59:10 PDT
Comment on attachment 261099 [details] almost done Attachment 261099 [details] did not pass mac-wk2-ews (mac-wk2): Output: http://webkit-queues.webkit.org/results/169272 New failing tests: js/array-reduceRight.html jquery/manipulation.html js/array-length-shortening.html js/array-iterators.html jquery/offset.html js/dfg-inline-arguments-use-from-all-the-places.html js/array-reduce.html js/array-includes.html js/array-every.html jquery/traversing.html js/dfg-inline-arguments-use-from-all-the-places-broken.html js/array-findIndex.html jquery/deferred.html js/array-find.html js/array-sort-sparse.html js/array-fill.html jquery/attributes.html jquery/dimensions.html jquery/data.html js/regress/array-nonarray-polymorhpic-access.html js/array-enumerators-functions.html jquery/core.html jquery/css.html jquery/event.html
Build Bot
Comment 8 2015-09-13 22:59:15 PDT
Created attachment 261105 [details] Archive of layout-test-results from ews104 for mac-mavericks-wk2 The attached test failures were seen while running run-webkit-tests on the mac-wk2-ews. Bot: ews104 Port: mac-mavericks-wk2 Platform: Mac OS X 10.9.5
Filip Pizlo
Comment 9 2015-09-14 12:59:59 PDT
Performance is neutral. Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on shakezilla (MacBookPro11,3). VMs tested: "TipOfTree" at /Volumes/Data/secondary/OpenSource/WebKitBuild/Release/jsc (r189679) "LLIntIC" at /Volumes/Data/quartary/OpenSource/WebKitBuild/Release/jsc (r189679) 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 LLIntIC SunSpider: 3d-cube 4.5820+-0.2680 ? 4.6836+-0.2147 ? might be 1.0222x slower 3d-morph 5.3884+-0.1392 ? 5.4365+-0.4282 ? 3d-raytrace 5.2715+-0.2096 ? 5.3056+-0.2693 ? access-binary-trees 2.2760+-0.3422 2.0883+-0.0784 might be 1.0899x faster access-fannkuch 5.5581+-0.3372 5.5060+-0.1578 access-nbody 2.4344+-0.0313 ? 2.4603+-0.0567 ? might be 1.0106x slower access-nsieve 3.1214+-0.2121 ? 3.1610+-0.3061 ? might be 1.0127x slower bitops-3bit-bits-in-byte 1.1635+-0.0897 1.1376+-0.0494 might be 1.0227x faster bitops-bits-in-byte 3.2171+-0.0751 ? 3.2675+-0.0838 ? might be 1.0157x slower bitops-bitwise-and 2.0153+-0.0852 2.0110+-0.0724 bitops-nsieve-bits 2.9618+-0.1476 2.8889+-0.0799 might be 1.0253x faster controlflow-recursive 2.4165+-0.5195 2.3100+-0.1259 might be 1.0461x faster crypto-aes 3.8692+-0.0885 3.8547+-0.0752 crypto-md5 2.4608+-0.0709 ? 2.4721+-0.0325 ? crypto-sha1 2.5077+-0.2012 2.4680+-0.2351 might be 1.0161x faster date-format-tofte 6.6815+-0.1330 ? 6.7667+-0.5084 ? might be 1.0127x slower date-format-xparb 4.8434+-0.5433 4.5612+-0.0643 might be 1.0619x faster math-cordic 2.8647+-0.2162 2.8300+-0.1659 might be 1.0122x faster math-partial-sums 4.7890+-0.0722 ? 5.0056+-0.2773 ? might be 1.0452x slower math-spectral-norm 1.8879+-0.0679 ? 2.0059+-0.2594 ? might be 1.0625x slower regexp-dna 6.3832+-0.3206 ? 6.5977+-0.3049 ? might be 1.0336x slower string-base64 4.6721+-0.3320 ? 4.6848+-0.5524 ? string-fasta 5.7759+-0.0502 ? 6.3845+-0.7894 ? might be 1.1054x slower string-tagcloud 7.8618+-0.1561 ? 8.0247+-0.4432 ? might be 1.0207x slower string-unpack-code 18.8517+-1.1353 ? 19.0692+-1.6311 ? might be 1.0115x slower string-validate-input 4.7121+-0.4434 4.4420+-0.0893 might be 1.0608x faster <arithmetic> 4.5603+-0.0579 ? 4.5932+-0.1068 ? might be 1.0072x slower TipOfTree LLIntIC LongSpider: 3d-cube 805.2518+-7.2533 ? 829.4709+-62.3841 ? might be 1.0301x slower 3d-morph 1484.0579+-2.1250 ? 1516.2352+-68.8000 ? might be 1.0217x slower 3d-raytrace 593.3660+-6.4760 ? 598.1403+-27.4388 ? access-binary-trees 805.3333+-10.6238 802.3867+-4.5486 access-fannkuch 279.3938+-12.6493 277.1274+-8.2500 access-nbody 504.1781+-2.5367 ? 505.6149+-4.1016 ? access-nsieve 366.9685+-15.1345 362.0544+-7.6830 might be 1.0136x faster bitops-3bit-bits-in-byte 34.6560+-1.3208 34.0718+-0.6115 might be 1.0171x faster bitops-bits-in-byte 80.0665+-10.3186 75.2861+-1.3212 might be 1.0635x faster bitops-nsieve-bits 400.2712+-3.2900 398.8237+-2.9827 controlflow-recursive 439.6807+-2.5804 439.2529+-2.0828 crypto-aes 569.3118+-6.5602 566.1007+-12.0636 crypto-md5 449.6653+-30.7750 ? 454.6507+-39.0027 ? might be 1.0111x slower crypto-sha1 629.9242+-9.3747 628.7699+-12.9306 date-format-tofte 505.1135+-16.9054 501.8959+-13.2588 date-format-xparb 650.5713+-4.9588 ? 656.2353+-4.1950 ? hash-map 159.4403+-9.4230 ? 163.7203+-2.4287 ? might be 1.0268x slower math-cordic 474.1529+-0.4331 ? 475.8425+-2.3188 ? math-partial-sums 460.0002+-0.4958 ? 460.3138+-0.5333 ? math-spectral-norm 549.4240+-5.8003 547.3337+-2.6266 string-base64 353.4439+-3.4426 ? 354.8953+-5.3631 ? string-fasta 363.1635+-3.6117 ? 364.5803+-4.2273 ? string-tagcloud 174.4503+-1.2400 ? 174.8959+-3.8575 ? <geometric> 386.6970+-2.8490 386.6967+-1.9311 might be 1.0000x faster TipOfTree LLIntIC V8Spider: crypto 49.2260+-1.8170 ? 49.6623+-2.1265 ? deltablue 86.9647+-5.4380 86.2991+-1.9175 earley-boyer 40.8886+-1.7571 ? 41.4707+-1.1707 ? might be 1.0142x slower raytrace 31.7177+-1.9335 31.1107+-1.6280 might be 1.0195x faster regexp 62.0460+-0.8681 ? 62.3502+-0.7992 ? richards 62.9038+-0.6951 61.9201+-1.6607 might be 1.0159x faster splay 34.0916+-1.1924 33.9340+-1.1421 <geometric> 49.5766+-1.0402 49.4471+-0.7798 might be 1.0026x faster TipOfTree LLIntIC Octane: encrypt 0.16753+-0.00452 ? 0.17158+-0.00457 ? might be 1.0242x slower decrypt 3.03263+-0.00836 3.02165+-0.01402 deltablue x2 0.15533+-0.00238 ? 0.15674+-0.00158 ? earley 0.29757+-0.00223 0.29613+-0.00501 boyer 4.28886+-0.03864 4.28647+-0.02287 navier-stokes x2 4.81242+-0.03068 4.80079+-0.00960 raytrace x2 0.89745+-0.00646 ? 0.89828+-0.00631 ? richards x2 0.10762+-0.00242 0.10658+-0.00155 splay x2 0.32668+-0.00548 0.32433+-0.00427 regexp x2 24.34654+-0.23537 23.99450+-0.18102 might be 1.0147x faster pdfjs x2 36.41728+-0.49459 ? 36.68009+-0.51891 ? mandreel x2 42.42116+-0.55996 ? 42.65303+-0.30988 ? gbemu x2 37.36024+-1.94941 ? 37.91544+-2.35295 ? might be 1.0149x slower closure 0.57066+-0.00165 0.56948+-0.00112 jquery 7.10656+-0.04412 ? 7.10676+-0.02787 ? box2d x2 10.12045+-0.15491 ? 10.23815+-0.16926 ? might be 1.0116x slower zlib x2 389.24669+-4.28712 383.22141+-3.48853 might be 1.0157x faster typescript x2 635.47400+-18.51005 622.50321+-6.49438 might be 1.0208x faster <geometric> 5.51903+-0.02576 5.51360+-0.02465 might be 1.0010x faster TipOfTree LLIntIC Kraken: ai-astar 223.265+-8.917 220.080+-2.183 might be 1.0145x faster audio-beat-detection 50.121+-0.180 ! 50.767+-0.406 ! definitely 1.0129x slower audio-dft 95.649+-1.736 ? 96.353+-2.223 ? audio-fft 34.951+-0.366 ? 35.560+-0.803 ? might be 1.0174x slower audio-oscillator 58.678+-0.651 ? 59.554+-1.359 ? might be 1.0149x slower imaging-darkroom 60.522+-0.079 ? 60.530+-0.068 ? imaging-desaturate 48.356+-0.239 ? 48.980+-1.470 ? might be 1.0129x slower imaging-gaussian-blur 84.932+-0.464 84.901+-0.431 json-parse-financial 39.097+-0.440 38.338+-0.639 might be 1.0198x faster json-stringify-tinderbox 22.511+-0.740 22.391+-0.646 stanford-crypto-aes 41.917+-2.031 41.022+-1.245 might be 1.0218x faster stanford-crypto-ccm 36.104+-1.078 35.043+-1.335 might be 1.0303x faster stanford-crypto-pbkdf2 92.843+-0.683 92.529+-0.800 stanford-crypto-sha256-iterative 36.632+-1.468 ? 36.904+-1.929 ? <arithmetic> 66.113+-0.681 65.925+-0.482 might be 1.0028x faster TipOfTree LLIntIC JSRegress: abc-forward-loop-equal 29.5588+-0.9360 29.3066+-0.6475 abc-postfix-backward-loop 29.7250+-1.1196 28.9455+-0.5703 might be 1.0269x faster abc-simple-backward-loop 30.1479+-1.5482 29.8477+-1.0957 might be 1.0101x faster abc-simple-forward-loop 29.0461+-0.7132 28.8763+-0.4587 abc-skippy-loop 21.1724+-0.7417 ? 21.2995+-0.8380 ? abs-boolean 2.3910+-0.0246 ? 2.4391+-0.0262 ? might be 1.0201x slower adapt-to-double-divide 16.2256+-0.3058 ? 16.2452+-0.2505 ? aliased-arguments-getbyval 1.1958+-0.0491 ? 1.2697+-0.3760 ? might be 1.0618x slower allocate-big-object 2.5780+-0.2721 2.3169+-0.2499 might be 1.1127x faster arguments-named-and-reflective 10.6091+-0.2612 ? 10.6148+-0.5835 ? arguments-out-of-bounds 9.0511+-0.3568 ? 9.9052+-0.8699 ? might be 1.0944x slower arguments-strict-mode 9.8185+-0.2681 9.5166+-0.4151 might be 1.0317x faster arguments 8.7238+-0.5436 8.3323+-0.4107 might be 1.0470x faster arity-mismatch-inlining 0.8423+-0.0179 ? 0.9895+-0.3096 ? might be 1.1747x slower array-access-polymorphic-structure 5.8934+-0.0851 5.6917+-0.2222 might be 1.0354x faster array-nonarray-polymorhpic-access 23.2865+-0.5387 ? 23.4614+-0.4181 ? array-prototype-every 77.8156+-3.0697 76.1118+-1.1700 might be 1.0224x faster array-prototype-forEach 76.0388+-0.6273 ? 82.0929+-18.3976 ? might be 1.0796x slower array-prototype-map 80.6036+-2.1851 79.5988+-0.9800 might be 1.0126x faster array-prototype-reduce 71.8359+-2.3277 70.8151+-1.3973 might be 1.0144x faster array-prototype-reduceRight 72.4908+-5.0647 70.9111+-1.2111 might be 1.0223x faster array-prototype-some 76.3669+-1.0653 ? 76.5801+-1.0452 ? array-splice-contiguous 21.3598+-1.5176 19.8621+-0.8687 might be 1.0754x faster array-with-double-add 3.4307+-0.0940 ? 3.4740+-0.2394 ? might be 1.0126x slower array-with-double-increment 3.0422+-0.0358 ? 3.1132+-0.1088 ? might be 1.0233x slower array-with-double-mul-add 4.1365+-0.0721 4.1013+-0.0451 array-with-double-sum 3.1595+-0.0392 ? 3.2386+-0.1174 ? might be 1.0250x slower array-with-int32-add-sub 5.7635+-0.3502 5.6319+-0.1787 might be 1.0234x faster array-with-int32-or-double-sum 3.3793+-0.1402 3.2676+-0.0777 might be 1.0342x faster ArrayBuffer-DataView-alloc-large-long-lived 25.4165+-0.5916 ? 26.2418+-1.4988 ? might be 1.0325x slower ArrayBuffer-DataView-alloc-long-lived 12.1833+-0.6521 11.8499+-0.5158 might be 1.0281x faster ArrayBuffer-Int32Array-byteOffset 3.4667+-0.0630 ? 3.6501+-0.2594 ? might be 1.0529x slower ArrayBuffer-Int8Array-alloc-large-long-lived 30.3826+-1.1851 29.3127+-0.1947 might be 1.0365x faster ArrayBuffer-Int8Array-alloc-long-lived-buffer 19.7491+-0.5151 ? 20.1047+-0.7418 ? might be 1.0180x slower ArrayBuffer-Int8Array-alloc-long-lived 12.3575+-0.5688 ? 12.5561+-0.5173 ? might be 1.0161x slower ArrayBuffer-Int8Array-alloc 9.4399+-0.2553 ? 9.7355+-0.6654 ? might be 1.0313x slower arrowfunction-call 10.7154+-0.4718 10.6217+-0.4390 asmjs_bool_bug 7.4368+-0.1913 ? 7.5490+-0.2226 ? might be 1.0151x slower assign-custom-setter-polymorphic 2.5807+-0.2744 2.4904+-0.0554 might be 1.0363x faster assign-custom-setter 3.5441+-0.2008 ? 3.7587+-0.4389 ? might be 1.0605x slower basic-set 8.3260+-0.3498 ? 8.3350+-0.3534 ? big-int-mul 3.5066+-0.2214 ? 3.5229+-0.0909 ? boolean-test 2.9288+-0.0387 ? 2.9677+-0.1194 ? might be 1.0133x slower branch-fold 3.6536+-0.1492 ? 3.6963+-0.1202 ? might be 1.0117x slower branch-on-string-as-boolean 16.6175+-0.3992 ? 17.0968+-0.4801 ? might be 1.0288x slower by-val-generic 2.4029+-0.1352 ? 2.5199+-0.2772 ? might be 1.0487x slower call-spread-apply 26.1562+-1.2169 25.9299+-1.0636 call-spread-call 21.7982+-0.5014 ^ 20.8213+-0.4058 ^ definitely 1.0469x faster captured-assignments 0.4184+-0.0246 0.4093+-0.0067 might be 1.0222x faster cast-int-to-double 5.0162+-0.0913 ? 5.0570+-0.0664 ? cell-argument 6.5825+-0.4455 6.2093+-0.1616 might be 1.0601x faster cfg-simplify 3.1100+-0.3653 2.9142+-0.1441 might be 1.0672x faster chain-getter-access 8.5139+-0.3047 8.2867+-0.1770 might be 1.0274x faster cmpeq-obj-to-obj-other 12.3912+-0.7245 12.2196+-1.0689 might be 1.0140x faster constant-test 4.8350+-0.0915 4.8246+-0.0449 create-lots-of-functions 9.3069+-0.2811 ? 9.5000+-0.2626 ? might be 1.0207x slower cse-new-array-buffer 2.3577+-0.2535 ? 2.4819+-0.1353 ? might be 1.0527x slower cse-new-array 2.5441+-0.3031 ? 2.5797+-0.4113 ? might be 1.0140x slower DataView-custom-properties 31.2032+-1.1710 30.7860+-1.6567 might be 1.0136x faster delay-tear-off-arguments-strictmode 11.9185+-0.3772 ? 12.1857+-0.3391 ? might be 1.0224x slower deltablue-varargs 169.8240+-7.9143 ? 170.3579+-6.4421 ? destructuring-arguments 161.1492+-1.2836 160.8385+-0.8549 destructuring-parameters-overridden-by-function 0.4344+-0.0117 0.4290+-0.0084 might be 1.0127x faster destructuring-swap 4.9087+-0.2711 ? 5.3913+-1.7414 ? might be 1.0983x slower direct-arguments-getbyval 1.2196+-0.0864 1.1611+-0.1092 might be 1.0504x faster div-boolean-double 5.2919+-0.0398 5.2872+-0.1923 div-boolean 8.0511+-0.0600 ? 8.1713+-0.1990 ? might be 1.0149x slower double-get-by-val-out-of-bounds 4.2540+-0.1441 ? 4.4373+-0.2383 ? might be 1.0431x slower double-pollution-getbyval 8.7560+-0.3617 8.7104+-0.1352 double-pollution-putbyoffset 3.8236+-0.2395 3.6682+-0.1231 might be 1.0424x faster double-real-use 25.3127+-2.1835 ? 25.3335+-1.6554 ? double-to-int32-typed-array-no-inline 2.1876+-0.0467 2.1792+-0.0439 double-to-int32-typed-array 2.1174+-0.2907 2.0232+-0.0859 might be 1.0465x faster double-to-uint32-typed-array-no-inline 2.2455+-0.0995 2.2007+-0.0699 might be 1.0204x faster double-to-uint32-typed-array 2.0292+-0.0391 ? 2.0533+-0.0460 ? might be 1.0119x slower elidable-new-object-dag 34.1602+-1.2507 ? 34.3503+-0.5414 ? elidable-new-object-roflcopter 32.6163+-1.3836 ? 33.1548+-0.8507 ? might be 1.0165x slower elidable-new-object-then-call 31.9210+-1.3197 31.8511+-0.9992 elidable-new-object-tree 38.2604+-0.9760 37.7005+-0.9684 might be 1.0149x faster empty-string-plus-int 4.7567+-0.2384 ? 4.8733+-0.3239 ? might be 1.0245x slower emscripten-cube2hash 25.9195+-1.2094 ? 26.8721+-1.4282 ? might be 1.0368x slower exit-length-on-plain-object 12.9550+-0.7849 12.5598+-0.4692 might be 1.0315x faster external-arguments-getbyval 1.2902+-0.1572 1.1919+-0.0989 might be 1.0824x faster external-arguments-putbyval 2.1657+-0.0546 ? 2.2441+-0.1252 ? might be 1.0362x slower fixed-typed-array-storage-var-index 1.2852+-0.1886 1.2092+-0.0600 might be 1.0629x faster fixed-typed-array-storage 0.8805+-0.0141 ? 0.9063+-0.0435 ? might be 1.0293x slower Float32Array-matrix-mult 3.8661+-0.0311 ? 4.1032+-0.3252 ? might be 1.0613x slower Float32Array-to-Float64Array-set 46.5953+-0.6756 46.4707+-0.9462 Float64Array-alloc-long-lived 69.1333+-1.1922 68.2275+-1.0054 might be 1.0133x faster Float64Array-to-Int16Array-set 57.6296+-0.9581 56.2756+-1.0030 might be 1.0241x faster fold-double-to-int 12.0486+-0.2753 ? 12.1010+-0.2450 ? fold-get-by-id-to-multi-get-by-offset-rare-int 11.0713+-1.0172 10.7363+-1.2437 might be 1.0312x faster fold-get-by-id-to-multi-get-by-offset 10.4611+-1.8655 10.4606+-2.4305 fold-multi-get-by-offset-to-get-by-offset 9.1140+-2.1222 8.5521+-0.3274 might be 1.0657x faster fold-multi-get-by-offset-to-poly-get-by-offset 8.6023+-1.7008 8.3337+-0.7822 might be 1.0322x faster fold-multi-put-by-offset-to-poly-put-by-offset 10.1530+-0.6192 ? 11.7708+-1.8102 ? might be 1.1593x slower fold-multi-put-by-offset-to-put-by-offset 4.2797+-0.7103 ? 4.5667+-0.9397 ? might be 1.0670x slower fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 9.2614+-0.5792 ? 9.3757+-0.5153 ? might be 1.0123x slower fold-put-by-id-to-multi-put-by-offset 11.6223+-2.3456 10.7007+-1.0803 might be 1.0861x faster fold-put-by-val-with-string-to-multi-put-by-offset 10.4156+-1.3424 ? 10.6400+-1.1855 ? might be 1.0215x slower fold-put-by-val-with-symbol-to-multi-put-by-offset 10.8774+-1.1584 10.0243+-1.3645 might be 1.0851x faster fold-put-structure 5.4089+-1.6037 4.5833+-1.2563 might be 1.1801x faster for-of-iterate-array-entries 11.3924+-0.6631 10.9735+-0.3752 might be 1.0382x faster for-of-iterate-array-keys 3.6642+-0.2065 3.4081+-0.1627 might be 1.0752x faster for-of-iterate-array-values 3.4805+-0.2244 3.3797+-0.1451 might be 1.0298x faster fround 17.7067+-0.8340 ? 18.6469+-1.1775 ? might be 1.0531x slower ftl-library-inlining-dataview 55.8162+-1.0337 55.6158+-0.8234 ftl-library-inlining 94.0416+-1.5924 ? 94.6195+-1.5081 ? function-call 10.7384+-0.2605 ? 10.7561+-0.2455 ? function-dot-apply 2.0945+-0.1958 2.0350+-0.0641 might be 1.0292x faster function-test 2.6656+-0.0458 ? 2.9056+-0.4772 ? might be 1.0900x slower function-with-eval 92.8670+-2.0739 ? 93.8560+-5.2818 ? might be 1.0106x slower gcse-poly-get-less-obvious 22.6870+-0.2853 ? 22.9015+-1.0877 ? gcse-poly-get 24.1854+-0.3098 ? 24.9795+-1.1199 ? might be 1.0328x slower gcse 3.8164+-0.0582 ? 3.9928+-0.3726 ? might be 1.0462x slower get-by-id-bimorphic-check-structure-elimination-simple 2.8571+-0.5156 2.5955+-0.0844 might be 1.1008x faster get-by-id-bimorphic-check-structure-elimination 5.8236+-0.3264 ? 5.8520+-0.2628 ? get-by-id-chain-from-try-block 5.5196+-0.2107 5.3685+-0.0830 might be 1.0282x faster get-by-id-check-structure-elimination 4.3866+-0.0948 ? 4.4635+-0.1677 ? might be 1.0175x slower get-by-id-proto-or-self 15.2561+-0.2090 ? 16.0470+-0.6108 ? might be 1.0518x slower get-by-id-quadmorphic-check-structure-elimination-simple 2.9493+-0.1234 2.8751+-0.0488 might be 1.0258x faster get-by-id-self-or-proto 15.4134+-0.2432 15.4034+-0.8078 get-by-val-out-of-bounds 4.0650+-0.0954 ? 4.2496+-0.2262 ? might be 1.0454x slower get-by-val-with-string-bimorphic-check-structure-elimination-simple 2.7713+-0.0230 ? 3.0431+-0.3337 ? might be 1.0981x slower get-by-val-with-string-bimorphic-check-structure-elimination 6.1743+-0.4141 5.9653+-0.0353 might be 1.0350x faster get-by-val-with-string-chain-from-try-block 5.6178+-0.2353 5.5798+-0.0648 get-by-val-with-string-check-structure-elimination 5.1957+-0.1342 5.1571+-0.1399 get-by-val-with-string-proto-or-self 15.8777+-1.0527 15.7976+-0.9810 get-by-val-with-string-quadmorphic-check-structure-elimination-simple 3.7860+-0.9729 3.4127+-0.1044 might be 1.1094x faster get-by-val-with-string-self-or-proto 15.5999+-0.7457 ? 15.8632+-0.9987 ? might be 1.0169x slower get-by-val-with-symbol-bimorphic-check-structure-elimination-simple 3.1012+-0.0427 ? 3.1436+-0.0530 ? might be 1.0137x slower get-by-val-with-symbol-bimorphic-check-structure-elimination 12.3383+-0.1309 12.2216+-0.1282 get-by-val-with-symbol-chain-from-try-block 5.5094+-0.0371 ? 5.5334+-0.1344 ? get-by-val-with-symbol-check-structure-elimination 11.2824+-0.0675 ? 11.4329+-0.3434 ? might be 1.0133x slower get-by-val-with-symbol-proto-or-self 15.9465+-1.0160 15.6007+-0.9295 might be 1.0222x faster get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple 3.7227+-0.1105 ? 3.8413+-0.1879 ? might be 1.0319x slower get-by-val-with-symbol-self-or-proto 15.8465+-0.7959 15.2570+-0.2018 might be 1.0386x faster get_callee_monomorphic 2.3147+-0.1514 ? 2.3369+-0.1752 ? get_callee_polymorphic 3.5208+-0.3762 3.3493+-0.1558 might be 1.0512x faster getter-no-activation 4.8997+-0.3249 4.8644+-0.1520 getter-prototype 9.1633+-0.4489 8.9626+-0.2531 might be 1.0224x faster getter-richards 121.3995+-4.2308 ? 123.0439+-7.4412 ? might be 1.0135x slower getter 5.3198+-0.6732 5.2386+-0.4077 might be 1.0155x faster global-object-access-with-mutating-structure 5.5382+-0.0798 ? 5.7026+-0.2601 ? might be 1.0297x slower global-var-const-infer-fire-from-opt 0.7235+-0.0773 ! 0.8579+-0.0339 ! definitely 1.1857x slower global-var-const-infer 0.6739+-0.1031 0.6683+-0.0798 hard-overflow-check-equal 32.6665+-1.0407 32.5163+-0.8755 hard-overflow-check 32.5545+-0.6252 ? 33.4847+-0.8404 ? might be 1.0286x slower HashMap-put-get-iterate-keys 27.4396+-1.5633 ? 27.7524+-0.9203 ? might be 1.0114x slower HashMap-put-get-iterate 29.2981+-1.1356 ? 29.5653+-1.4639 ? HashMap-string-put-get-iterate 26.3514+-3.3025 25.1226+-0.9322 might be 1.0489x faster hoist-make-rope 8.3846+-0.6440 ? 9.2891+-1.0461 ? might be 1.1079x slower hoist-poly-check-structure-effectful-loop 4.1300+-0.0856 ? 4.1712+-0.0758 ? hoist-poly-check-structure 3.3115+-0.0660 ? 3.3828+-0.2217 ? might be 1.0215x slower imul-double-only 7.2898+-0.4067 7.2336+-0.2495 imul-int-only 8.4435+-0.9356 8.3765+-0.7428 imul-mixed 7.1480+-0.6535 ? 8.0537+-2.2903 ? might be 1.1267x slower in-four-cases 16.7746+-0.3976 ? 16.9033+-0.6323 ? in-one-case-false 9.9857+-0.5600 9.7624+-0.6358 might be 1.0229x faster in-one-case-true 9.7587+-0.9750 9.6962+-0.6533 in-two-cases 9.6326+-0.5251 ? 9.6774+-0.7200 ? indexed-properties-in-objects 2.7357+-0.1434 2.6849+-0.0376 might be 1.0189x faster infer-closure-const-then-mov-no-inline 3.6534+-0.2935 ? 3.6688+-0.2632 ? infer-closure-const-then-mov 18.4993+-0.5313 17.8795+-0.4613 might be 1.0347x faster infer-closure-const-then-put-to-scope-no-inline 11.2478+-0.4759 10.9389+-0.5034 might be 1.0282x faster infer-closure-const-then-put-to-scope 23.5837+-1.8787 23.2237+-1.0921 might be 1.0155x faster infer-closure-const-then-reenter-no-inline 45.5867+-0.8835 44.9211+-0.7602 might be 1.0148x faster infer-closure-const-then-reenter 22.9005+-0.7002 ? 23.3868+-0.4269 ? might be 1.0212x slower infer-constant-global-property 3.4036+-0.0287 ? 3.4280+-0.0781 ? infer-constant-property 2.6140+-0.0974 2.5833+-0.0354 might be 1.0119x faster infer-one-time-closure-ten-vars 8.4504+-0.9294 7.6836+-0.1506 might be 1.0998x faster infer-one-time-closure-two-vars 7.2996+-0.3233 ? 7.4731+-0.2734 ? might be 1.0238x slower infer-one-time-closure 7.5210+-0.4369 7.4836+-0.4492 infer-one-time-deep-closure 10.3886+-0.2276 ? 10.6781+-0.3442 ? might be 1.0279x slower inline-arguments-access 4.0148+-0.5692 3.7390+-0.2893 might be 1.0738x faster inline-arguments-aliased-access 3.7388+-0.2493 ? 3.7878+-0.2879 ? might be 1.0131x slower inline-arguments-local-escape 3.6925+-0.1751 3.6630+-0.1937 inline-get-scoped-var 4.6093+-0.1969 4.4468+-0.1506 might be 1.0366x faster inlined-put-by-id-transition 9.5439+-0.5512 9.4022+-0.7385 might be 1.0151x faster inlined-put-by-val-with-string-transition 41.4285+-1.8780 40.4745+-1.4626 might be 1.0236x faster inlined-put-by-val-with-symbol-transition 40.7075+-1.5069 ? 41.6678+-0.7890 ? might be 1.0236x slower int-or-other-abs-then-get-by-val 4.4862+-0.0991 4.4444+-0.0942 int-or-other-abs-zero-then-get-by-val 15.7461+-0.4525 ? 16.1228+-0.8993 ? might be 1.0239x slower int-or-other-add-then-get-by-val 4.0811+-0.1266 ? 4.1434+-0.2435 ? might be 1.0152x slower int-or-other-add 4.9162+-0.0642 ? 4.9293+-0.1291 ? int-or-other-div-then-get-by-val 3.8885+-0.3171 3.7315+-0.0567 might be 1.0421x faster int-or-other-max-then-get-by-val 4.0571+-0.4862 3.8389+-0.0788 might be 1.0568x faster int-or-other-min-then-get-by-val 3.7245+-0.0350 3.7009+-0.0502 int-or-other-mod-then-get-by-val 3.5804+-0.2692 3.4609+-0.0561 might be 1.0345x faster int-or-other-mul-then-get-by-val 3.6644+-0.2288 3.6258+-0.1121 might be 1.0107x faster int-or-other-neg-then-get-by-val 3.9758+-0.0420 ? 4.0999+-0.1475 ? might be 1.0312x slower int-or-other-neg-zero-then-get-by-val 16.0778+-0.6839 15.5370+-0.2456 might be 1.0348x faster int-or-other-sub-then-get-by-val 4.1884+-0.3797 4.1213+-0.1839 might be 1.0163x faster int-or-other-sub 3.4495+-0.0591 3.4008+-0.0476 might be 1.0143x faster int-overflow-local 4.0551+-0.0510 ? 4.1197+-0.1794 ? might be 1.0159x slower Int16Array-alloc-long-lived 46.2493+-1.0612 45.8165+-1.0141 Int16Array-bubble-sort-with-byteLength 17.6859+-1.3153 17.3712+-0.6159 might be 1.0181x faster Int16Array-bubble-sort 17.7390+-1.4073 17.0890+-0.5272 might be 1.0380x faster Int16Array-load-int-mul 1.4041+-0.0309 1.3881+-0.0106 might be 1.0115x faster Int16Array-to-Int32Array-set 43.5746+-0.9860 43.0499+-0.8122 might be 1.0122x faster Int32Array-alloc-large 12.2144+-0.8186 ? 12.3841+-0.4423 ? might be 1.0139x slower Int32Array-alloc-long-lived 54.5046+-1.2196 ? 55.4779+-0.9750 ? might be 1.0179x slower Int32Array-alloc 2.7128+-0.1009 2.6635+-0.1407 might be 1.0185x faster Int32Array-Int8Array-view-alloc 5.8809+-0.2125 ? 6.2790+-0.7579 ? might be 1.0677x slower int52-spill 4.5307+-0.0610 ? 4.5891+-0.2920 ? might be 1.0129x slower Int8Array-alloc-long-lived 41.2960+-1.1278 41.1617+-0.8073 Int8Array-load-with-byteLength 3.4815+-0.2498 3.3431+-0.0718 might be 1.0414x faster Int8Array-load 3.4381+-0.1527 ? 3.4387+-0.1724 ? integer-divide 10.5027+-0.4194 10.4529+-0.4379 integer-modulo 1.6197+-0.0551 1.5803+-0.0208 might be 1.0249x faster is-boolean-fold-tricky 3.7887+-0.1868 ? 3.9249+-0.4581 ? might be 1.0359x slower is-boolean-fold 2.6282+-0.0660 ? 2.6480+-0.0652 ? is-function-fold-tricky-internal-function 9.7492+-0.7948 9.6380+-0.2229 might be 1.0115x faster is-function-fold-tricky 4.0089+-0.0675 ? 4.0798+-0.1220 ? might be 1.0177x slower is-function-fold 2.7183+-0.1264 2.6234+-0.0272 might be 1.0362x faster is-number-fold-tricky 3.9305+-0.0294 3.9119+-0.1395 is-number-fold 2.6734+-0.1476 2.6189+-0.0144 might be 1.0208x faster is-object-or-null-fold-functions 2.6097+-0.0245 ? 2.7308+-0.1768 ? might be 1.0464x slower is-object-or-null-fold-less-tricky 4.0240+-0.1009 4.0002+-0.1024 is-object-or-null-fold-tricky 4.7327+-0.0585 ? 4.7907+-0.0737 ? might be 1.0123x slower is-object-or-null-fold 2.6073+-0.0288 ? 2.7251+-0.1121 ? might be 1.0451x slower is-object-or-null-trickier-function 4.2215+-0.3996 4.0144+-0.0465 might be 1.0516x faster is-object-or-null-trickier-internal-function 9.7541+-0.1456 ? 10.1219+-0.3504 ? might be 1.0377x slower is-object-or-null-tricky-function 3.9962+-0.1123 ? 4.4325+-1.1256 ? might be 1.1092x slower is-object-or-null-tricky-internal-function 7.3869+-0.0456 ? 7.4532+-0.2581 ? is-string-fold-tricky 3.9467+-0.0951 ? 4.0134+-0.2493 ? might be 1.0169x slower is-string-fold 2.6206+-0.0557 2.5887+-0.0304 might be 1.0123x faster is-undefined-fold-tricky 3.3302+-0.0698 3.2867+-0.0234 might be 1.0132x faster is-undefined-fold 2.7547+-0.3400 2.7229+-0.2146 might be 1.0117x faster JSONP-negative-0 0.2557+-0.0264 0.2429+-0.0072 might be 1.0528x faster large-int-captured 4.2324+-0.3873 4.1007+-0.1492 might be 1.0321x faster large-int-neg 14.0267+-0.2729 ? 14.2896+-0.4395 ? might be 1.0187x slower large-int 13.2685+-0.9638 13.2352+-0.8244 load-varargs-elimination 19.9818+-0.6319 ? 20.6121+-0.5123 ? might be 1.0315x slower logical-not-weird-types 3.0317+-0.0717 ? 3.0787+-0.2078 ? might be 1.0155x slower logical-not 4.4281+-0.3134 4.3444+-0.1308 might be 1.0193x faster lots-of-fields 8.9549+-0.8090 8.9273+-0.5871 make-indexed-storage 2.8461+-0.2781 2.8079+-0.1361 might be 1.0136x faster make-rope-cse 3.7054+-0.2482 3.6800+-0.0891 marsaglia-larger-ints 32.0726+-1.2327 31.5459+-0.6269 might be 1.0167x faster marsaglia-osr-entry 21.4540+-0.6622 21.1735+-0.4632 might be 1.0132x faster math-with-out-of-bounds-array-values 21.3561+-0.5822 ? 21.4257+-0.6678 ? max-boolean 2.5837+-0.0520 ? 2.6690+-0.0945 ? might be 1.0330x slower method-on-number 15.4352+-0.3662 ? 15.9800+-0.6679 ? might be 1.0353x slower min-boolean 2.6316+-0.0653 ? 2.6523+-0.0592 ? minus-boolean-double 3.2062+-0.1736 3.1377+-0.1689 might be 1.0218x faster minus-boolean 2.2884+-0.0543 ? 2.3083+-0.0243 ? misc-strict-eq 29.2238+-2.0012 27.9670+-0.9983 might be 1.0449x faster mod-boolean-double 11.1114+-0.2241 ? 11.4029+-0.3886 ? might be 1.0262x slower mod-boolean 8.2630+-0.0384 ? 8.3770+-0.1271 ? might be 1.0138x slower mul-boolean-double 3.6186+-0.0357 3.5474+-0.0612 might be 1.0201x faster mul-boolean 2.8241+-0.1539 2.8103+-0.0268 neg-boolean 3.2173+-0.3250 3.0873+-0.0521 might be 1.0421x faster negative-zero-divide 0.3453+-0.0253 ? 0.3534+-0.0322 ? might be 1.0237x slower negative-zero-modulo 0.3263+-0.0138 ? 0.3313+-0.0172 ? might be 1.0153x slower negative-zero-negate 0.3368+-0.0346 ? 0.3428+-0.0319 ? might be 1.0179x slower nested-function-parsing 43.9137+-0.4755 ? 44.6795+-0.4225 ? might be 1.0174x slower new-array-buffer-dead 87.7560+-0.9311 ? 87.8518+-2.6385 ? new-array-buffer-push 5.8955+-0.2398 ? 6.1799+-0.4798 ? might be 1.0482x slower new-array-dead 15.6888+-0.9046 14.9694+-1.3217 might be 1.0481x faster new-array-push 3.5632+-0.2487 3.5101+-0.2051 might be 1.0151x faster no-inline-constructor 31.5415+-1.4507 31.2979+-0.6762 number-test 2.9506+-0.0701 2.9065+-0.0599 might be 1.0152x faster object-closure-call 5.1697+-0.0942 ? 5.5278+-0.4854 ? might be 1.0693x slower object-get-own-property-symbols-on-large-array 4.1560+-0.3903 ? 4.3464+-0.3441 ? might be 1.0458x slower object-test 2.7609+-0.0848 ? 2.7688+-0.0712 ? obvious-sink-pathology-taken 98.6923+-1.3942 98.3037+-0.9666 obvious-sink-pathology 93.7749+-1.1135 93.7169+-1.6205 obviously-elidable-new-object 28.4962+-0.5007 28.4494+-0.5897 plus-boolean-arith 2.4133+-0.1277 2.3645+-0.0174 might be 1.0207x faster plus-boolean-double 3.1164+-0.1543 ? 3.1644+-0.1885 ? might be 1.0154x slower plus-boolean 2.4760+-0.0161 ? 2.5132+-0.0764 ? might be 1.0151x slower poly-chain-access-different-prototypes-simple 3.2229+-0.1150 ? 3.2782+-0.1307 ? might be 1.0171x slower poly-chain-access-different-prototypes 3.2436+-0.0684 3.2118+-0.0159 poly-chain-access-simpler 3.3081+-0.1745 3.2166+-0.0523 might be 1.0284x faster poly-chain-access 3.2865+-0.1400 ? 3.3391+-0.1487 ? might be 1.0160x slower poly-stricteq 49.4473+-0.6577 ? 49.6668+-0.7268 ? polymorphic-array-call 1.3849+-0.2068 1.2618+-0.1248 might be 1.0975x faster polymorphic-get-by-id 2.8867+-0.1265 ? 2.9698+-0.2036 ? might be 1.0288x slower polymorphic-put-by-id 28.7363+-0.7201 28.3782+-1.0326 might be 1.0126x faster polymorphic-put-by-val-with-string 28.2849+-0.7238 27.9642+-1.0309 might be 1.0115x faster polymorphic-put-by-val-with-symbol 28.0558+-1.0068 ? 28.9895+-1.2947 ? might be 1.0333x slower polymorphic-structure 13.3973+-0.5866 13.0800+-0.5027 might be 1.0243x faster polyvariant-monomorphic-get-by-id 6.6219+-1.0366 6.5989+-0.9456 proto-getter-access 8.5616+-0.4166 8.3719+-0.2102 might be 1.0227x faster prototype-access-with-mutating-prototype 5.5755+-0.4877 5.4184+-0.1797 might be 1.0290x faster put-by-id-replace-and-transition 7.7857+-0.7724 ? 7.9415+-0.7397 ? might be 1.0200x slower put-by-id-slightly-polymorphic 2.6199+-0.0612 ? 2.7395+-0.3058 ? might be 1.0456x slower put-by-id 9.6626+-0.4744 ? 10.2043+-0.6413 ? might be 1.0561x slower put-by-val-direct 0.3442+-0.0149 0.3400+-0.0192 might be 1.0123x faster put-by-val-large-index-blank-indexing-type 5.1318+-0.2781 ? 5.3641+-0.3438 ? might be 1.0453x slower put-by-val-machine-int 2.5896+-0.2468 ? 2.6468+-0.4675 ? might be 1.0221x slower put-by-val-with-string-replace-and-transition 10.7299+-0.8439 10.5822+-0.7138 might be 1.0140x faster put-by-val-with-string-slightly-polymorphic 3.0139+-0.3007 ? 3.0375+-0.2574 ? put-by-val-with-string 10.3297+-0.8329 ? 10.5371+-0.8062 ? might be 1.0201x slower put-by-val-with-symbol-replace-and-transition 12.0344+-0.5191 11.6502+-0.5110 might be 1.0330x faster put-by-val-with-symbol-slightly-polymorphic 3.2568+-0.2353 3.1899+-0.1298 might be 1.0210x faster put-by-val-with-symbol 10.0896+-0.1531 ? 10.7595+-0.8182 ? might be 1.0664x slower rare-osr-exit-on-local 13.7036+-0.4983 ? 13.9779+-0.9192 ? might be 1.0200x slower register-pressure-from-osr 17.3906+-0.4017 ? 17.9222+-0.8392 ? might be 1.0306x slower repeat-multi-get-by-offset 21.8948+-0.9225 ? 21.9271+-0.5174 ? setter-prototype 7.8108+-0.2134 7.6501+-0.1741 might be 1.0210x faster setter 5.5090+-0.4024 ? 5.9328+-0.7314 ? might be 1.0769x slower simple-activation-demo 24.2730+-0.8519 ? 25.0763+-2.0261 ? might be 1.0331x slower simple-getter-access 10.7284+-0.3070 ? 10.9055+-0.5756 ? might be 1.0165x slower simple-poly-call-nested 8.7455+-0.8683 ? 8.7459+-0.7189 ? simple-poly-call 1.2906+-0.0925 1.2791+-0.0446 sin-boolean 20.1574+-3.1638 ? 20.5875+-2.3352 ? might be 1.0213x slower singleton-scope 59.7303+-2.1592 58.0639+-0.7636 might be 1.0287x faster sink-function 10.0750+-0.8132 ? 10.8610+-1.3077 ? might be 1.0780x slower sink-huge-activation 16.2224+-1.1275 16.1589+-0.3719 sinkable-new-object-dag 53.9622+-1.1710 ? 55.3050+-1.6790 ? might be 1.0249x slower sinkable-new-object-taken 44.4919+-0.5824 44.3984+-1.0615 sinkable-new-object 29.7314+-0.4493 ? 29.8949+-1.1875 ? slow-array-profile-convergence 2.3896+-0.1201 ? 2.4250+-0.2162 ? might be 1.0148x slower slow-convergence 2.3771+-0.0707 2.3584+-0.0687 slow-ternaries 18.1135+-2.3750 ? 18.6585+-2.8141 ? might be 1.0301x slower sorting-benchmark 16.9252+-0.5725 16.7649+-0.4860 sparse-conditional 1.1622+-0.0376 1.1418+-0.0180 might be 1.0178x faster splice-to-remove 11.8169+-0.1422 ? 12.0164+-0.3922 ? might be 1.0169x slower string-char-code-at 13.1501+-0.2771 ? 13.1674+-0.1150 ? string-concat-object 2.2084+-0.1336 2.1913+-0.0617 string-concat-pair-object 2.1892+-0.0636 2.1373+-0.1368 might be 1.0243x faster string-concat-pair-simple 9.0778+-0.1800 ? 9.3172+-0.5780 ? might be 1.0264x slower string-concat-simple 9.9178+-0.6586 ^ 9.0471+-0.1811 ^ definitely 1.0962x faster string-cons-repeat 6.3351+-0.2255 ? 6.4325+-0.1771 ? might be 1.0154x slower string-cons-tower 6.8962+-0.5426 6.6569+-0.3430 might be 1.0360x faster string-equality 16.2898+-0.5242 16.1002+-0.4667 might be 1.0118x faster string-get-by-val-big-char 6.4651+-0.0890 ? 6.8818+-0.5906 ? might be 1.0644x slower string-get-by-val-out-of-bounds-insane 3.0652+-0.1217 3.0173+-0.1134 might be 1.0159x faster string-get-by-val-out-of-bounds 4.0585+-0.3095 4.0017+-0.1765 might be 1.0142x faster string-get-by-val 2.9029+-0.1752 2.8044+-0.0351 might be 1.0351x faster string-hash 1.8371+-0.0503 ? 1.8792+-0.1623 ? might be 1.0229x slower string-long-ident-equality 15.3940+-1.1665 15.0904+-0.5786 might be 1.0201x faster string-out-of-bounds 10.0917+-0.4077 ? 10.3901+-1.0949 ? might be 1.0296x slower string-repeat-arith 27.2160+-0.9256 27.1485+-1.8965 string-sub 54.4883+-1.0358 ? 54.5116+-1.3047 ? string-test 2.8726+-0.0964 2.7803+-0.0560 might be 1.0332x faster string-var-equality 27.6686+-1.1445 26.9029+-0.8513 might be 1.0285x faster structure-hoist-over-transitions 2.4249+-0.1365 ? 2.5789+-0.5778 ? might be 1.0635x slower substring-concat-weird 36.5255+-1.4907 35.8383+-1.0758 might be 1.0192x faster substring-concat 40.0963+-1.1212 39.9390+-0.7520 substring 44.3925+-1.4709 ? 44.8373+-1.8841 ? might be 1.0100x slower switch-char-constant 2.6491+-0.0502 ? 2.7298+-0.1348 ? might be 1.0305x slower switch-char 5.6741+-0.9712 5.6370+-1.0183 switch-constant 7.9263+-1.3621 7.8411+-0.9787 might be 1.0109x faster switch-string-basic-big-var 14.6364+-0.5050 14.4184+-0.4696 might be 1.0151x faster switch-string-basic-big 15.0570+-0.4297 ? 15.1920+-0.5177 ? switch-string-basic-var 13.7865+-1.7485 13.0011+-0.2072 might be 1.0604x faster switch-string-basic 12.6484+-0.4246 12.5808+-0.4848 switch-string-big-length-tower-var 18.3653+-1.4234 ? 18.4858+-1.0141 ? switch-string-length-tower-var 13.0957+-0.3871 ? 13.2309+-0.4815 ? might be 1.0103x slower switch-string-length-tower 11.5552+-0.4248 11.5026+-0.5413 switch-string-short 11.3419+-0.1810 ? 11.7533+-0.3833 ? might be 1.0363x slower switch 10.5983+-0.4137 ? 11.5158+-0.8019 ? might be 1.0866x slower tear-off-arguments-simple 3.1368+-0.1823 3.0752+-0.2244 might be 1.0200x faster tear-off-arguments 4.0642+-0.2453 4.0125+-0.1010 might be 1.0129x faster temporal-structure 11.7295+-0.2896 11.6260+-0.3139 to-int32-boolean 12.5429+-0.2041 12.3818+-0.1283 might be 1.0130x faster try-catch-get-by-val-cloned-arguments 13.8665+-0.3500 13.7037+-0.4299 might be 1.0119x faster try-catch-get-by-val-direct-arguments 6.3129+-0.1634 ? 6.7415+-0.4293 ? might be 1.0679x slower try-catch-get-by-val-scoped-arguments 7.6349+-0.5994 ? 7.6616+-0.2337 ? typed-array-get-set-by-val-profiling 27.3520+-0.6562 26.7581+-0.4613 might be 1.0222x faster undefined-property-access 223.0888+-0.1836 ? 223.9167+-0.6561 ? undefined-test 2.9588+-0.0448 2.9197+-0.0642 might be 1.0134x faster unprofiled-licm 14.4271+-0.5423 13.9625+-0.5779 might be 1.0333x faster varargs-call 13.0549+-0.2010 12.9299+-0.2940 varargs-construct-inline 22.2209+-0.8282 ? 22.5580+-1.8607 ? might be 1.0152x slower varargs-construct 20.0676+-0.5649 20.0379+-0.5136 varargs-inline 8.6772+-0.2505 ? 9.0049+-0.5491 ? might be 1.0378x slower varargs-strict-mode 9.5964+-0.2421 ? 9.6805+-0.3493 ? varargs 9.6348+-0.4864 ? 9.8169+-0.7100 ? might be 1.0189x slower weird-inlining-const-prop 2.1692+-0.2261 2.0862+-0.0741 might be 1.0398x faster <geometric> 7.8854+-0.0091 ? 7.8884+-0.0329 ? might be 1.0004x slower TipOfTree LLIntIC AsmBench: bigfib.cpp 448.6382+-11.8803 444.5765+-8.4518 cray.c 389.4518+-1.2282 ? 390.1629+-0.9951 ? dry.c 422.5213+-8.5673 ? 423.5380+-2.6095 ? FloatMM.c 680.3040+-1.5936 ? 682.1699+-6.4600 ? gcc-loops.cpp 3428.2941+-42.1605 3412.9740+-25.6648 n-body.c 820.9386+-2.6853 ? 821.1897+-3.6103 ? Quicksort.c 405.1803+-4.4708 ? 406.2826+-2.9045 ? stepanov_container.cpp 3468.7686+-32.0511 ? 3474.0173+-22.1040 ? Towers.c 232.1965+-1.0467 232.1600+-1.6289 <geometric> 710.4447+-4.2664 710.2847+-1.5655 might be 1.0002x faster TipOfTree LLIntIC CompressionBench: huffman 58.7808+-0.7544 ? 59.4109+-2.0454 ? might be 1.0107x slower arithmetic-simple 270.4141+-1.1514 ? 270.8094+-1.2237 ? arithmetic-precise 241.1982+-0.8659 240.9763+-1.4014 arithmetic-complex-precise 243.0799+-1.8268 243.0332+-3.1497 arithmetic-precise-order-0 279.0920+-2.6851 ? 280.6154+-5.9362 ? arithmetic-precise-order-1 292.6687+-1.2813 292.2852+-1.5760 arithmetic-precise-order-2 339.9925+-1.3793 ? 340.2854+-3.8729 ? arithmetic-simple-order-1 314.3483+-1.5399 312.9745+-1.8920 arithmetic-simple-order-2 362.7097+-1.3678 ? 367.7477+-5.1268 ? might be 1.0139x slower lz-string 312.5353+-3.7943 311.7299+-4.5051 <geometric> 249.1592+-0.6574 ? 249.7143+-1.5643 ? might be 1.0022x slower TipOfTree LLIntIC Geomean of preferred means: <scaled-result> 50.8234+-0.2493 ? 50.8430+-0.2414 ? might be 1.0004x slower
Filip Pizlo
Comment 10 2015-09-14 13:03:14 PDT
Created attachment 261124 [details] the patch
WebKit Commit Bot
Comment 11 2015-09-14 13:05:56 PDT
Attachment 261124 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/bytecode/CodeBlock.cpp:2535: Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side. [whitespace/operators] [4] ERROR: Source/JavaScriptCore/bytecode/CodeBlock.cpp:2535: Multi line control clauses should use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/CodeBlock.cpp:2536: Boolean expressions that span multiple lines should have their operators on the left side of the line instead of the right side. [whitespace/operators] [4] ERROR: Source/JavaScriptCore/bytecode/PutByIdFlags.cpp:37: Place brace on its own line for function definitions. [whitespace/braces] [4] Total errors found: 4 in 20 files If any of these errors are false positives, please file a bug against check-webkit-style.
Geoffrey Garen
Comment 12 2015-09-14 13:11:08 PDT
Comment on attachment 261124 [details] the patch r=me
Filip Pizlo
Comment 13 2015-09-14 15:07:29 PDT
I'm pretty sure I fixed the iOS breakage locally.
Filip Pizlo
Comment 14 2015-09-14 15:11:20 PDT
WebKit Commit Bot
Comment 15 2015-09-14 16:39:28 PDT
Re-opened since this is blocked by bug 149143
Filip Pizlo
Comment 16 2015-09-14 17:56:52 PDT
Note You need to log in before you can comment on or make changes to this bug.