Bug 141332

Summary: DFG should really support varargs
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: JavaScriptCoreAssignee: Filip Pizlo <fpizlo>
Status: RESOLVED FIXED    
Severity: Normal CC: barraclough, commit-queue, ggaren, mark.lam, mhahnenb, mmirman, msaboff, nrotem, oliver, ossy, saam, sam
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Bug Depends on: 141337, 141342, 141388, 141398, 141440, 141455, 141485, 141493, 141623, 141714, 141771    
Bug Blocks: 141448, 141660, 141174    
Attachments:
Description Flags
work in progress
none
slowly coming along
none
more things
none
even more
none
DFG 64-bit CallVarargs done
none
DFG LoadVarargs 64-bit done
none
OMG so much code
none
more
none
64-bit might be done
none
starting to compile, and reworking CallForwardVarargs in FTL
none
almost compiling
none
it compiles!
none
it passes some of our tests!
none
now passes more tests than ever!
none
it's passing so many tests
none
almost passing all tests
none
more FTL fixes
none
more fixes, more tests
none
64-bit tests pass
none
towards 32-bit support
none
x86 32-bit and 64-bit pass all tests
oliver: review+
closer to landing
none
ARM64 works none

Filip Pizlo
Reported 2015-02-06 08:06:47 PST
Something that blocks us from doing various arguments-related improvements is that we don't compile or inline code with varargs calls unless it's statically obvious that we're just forwarding arguments. That's lame. The forwarding of arguments should be a late optimization after we have already represented the problem in DFG IR.
Attachments
work in progress (16.82 KB, patch)
2015-02-06 10:52 PST, Filip Pizlo
no flags
slowly coming along (38.77 KB, patch)
2015-02-07 11:56 PST, Filip Pizlo
no flags
more things (57.28 KB, patch)
2015-02-07 16:24 PST, Filip Pizlo
no flags
even more (68.33 KB, patch)
2015-02-10 14:59 PST, Filip Pizlo
no flags
DFG 64-bit CallVarargs done (72.58 KB, patch)
2015-02-10 15:45 PST, Filip Pizlo
no flags
DFG LoadVarargs 64-bit done (79.00 KB, patch)
2015-02-10 16:48 PST, Filip Pizlo
no flags
OMG so much code (101.27 KB, patch)
2015-02-11 15:04 PST, Filip Pizlo
no flags
more (110.88 KB, patch)
2015-02-11 15:59 PST, Filip Pizlo
no flags
64-bit might be done (117.48 KB, patch)
2015-02-11 20:59 PST, Filip Pizlo
no flags
starting to compile, and reworking CallForwardVarargs in FTL (128.91 KB, patch)
2015-02-12 10:19 PST, Filip Pizlo
no flags
almost compiling (135.52 KB, patch)
2015-02-13 12:43 PST, Filip Pizlo
no flags
it compiles! (147.48 KB, patch)
2015-02-13 14:17 PST, Filip Pizlo
no flags
it passes some of our tests! (150.96 KB, patch)
2015-02-13 17:36 PST, Filip Pizlo
no flags
now passes more tests than ever! (173.22 KB, patch)
2015-02-13 22:04 PST, Filip Pizlo
no flags
it's passing so many tests (173.50 KB, patch)
2015-02-14 10:11 PST, Filip Pizlo
no flags
almost passing all tests (183.33 KB, patch)
2015-02-15 18:08 PST, Filip Pizlo
no flags
more FTL fixes (188.44 KB, patch)
2015-02-16 12:58 PST, Filip Pizlo
no flags
more fixes, more tests (200.05 KB, patch)
2015-02-16 13:54 PST, Filip Pizlo
no flags
64-bit tests pass (232.43 KB, patch)
2015-02-16 17:06 PST, Filip Pizlo
no flags
towards 32-bit support (278.34 KB, patch)
2015-02-16 20:49 PST, Filip Pizlo
no flags
x86 32-bit and 64-bit pass all tests (285.12 KB, patch)
2015-02-16 21:15 PST, Filip Pizlo
oliver: review+
closer to landing (291.98 KB, patch)
2015-02-17 11:10 PST, Filip Pizlo
no flags
ARM64 works (292.84 KB, patch)
2015-02-18 09:06 PST, Filip Pizlo
no flags
Filip Pizlo
Comment 1 2015-02-06 10:52:51 PST
Created attachment 246166 [details] work in progress
Filip Pizlo
Comment 2 2015-02-07 11:56:37 PST
Created attachment 246212 [details] slowly coming along
Filip Pizlo
Comment 3 2015-02-07 16:24:13 PST
Created attachment 246226 [details] more things
Filip Pizlo
Comment 4 2015-02-10 14:59:06 PST
Created attachment 246344 [details] even more
Filip Pizlo
Comment 5 2015-02-10 15:45:42 PST
Created attachment 246349 [details] DFG 64-bit CallVarargs done Still a lot more to do, but it's coming along.
Filip Pizlo
Comment 6 2015-02-10 16:48:36 PST
Created attachment 246351 [details] DFG LoadVarargs 64-bit done Now I need to write the FTL side.
Filip Pizlo
Comment 7 2015-02-11 15:04:29 PST
Created attachment 246417 [details] OMG so much code I wrote most of the meat of the FTL varargs call, and filled in some missing junk for the inline call frame arguments register.
Filip Pizlo
Comment 8 2015-02-11 15:59:28 PST
Created attachment 246418 [details] more Closing the loop on call varargs in the FTL
Filip Pizlo
Comment 9 2015-02-11 20:59:12 PST
Created attachment 246423 [details] 64-bit might be done I haven't even tried compiling yet.
WebKit Commit Bot
Comment 10 2015-02-12 06:37:05 PST
Attachment 246423 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/ftl/FTLJSCallVarargs.cpp:46: Comma should be at the beginning of the line in a member initialization list. [whitespace/init] [4] ERROR: Source/JavaScriptCore/ftl/FTLJSCallVarargs.cpp:97: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLJSCallVarargs.cpp:105: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/CallLinkStatus.cpp:298: Missing space before { [whitespace/braces] [5] ERROR: Source/JavaScriptCore/jit/JITCall.cpp:149: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] ERROR: Source/JavaScriptCore/jit/JITCall.cpp:168: When wrapping a line, only indent 4 spaces. [whitespace/indent] [3] ERROR: Source/JavaScriptCore/jit/JITCall.cpp:195: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:679: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:1139: More than one command on the same line [whitespace/newline] [4] Total errors found: 9 in 50 files If any of these errors are false positives, please file a bug against check-webkit-style.
Filip Pizlo
Comment 11 2015-02-12 10:19:19 PST
Created attachment 246451 [details] starting to compile, and reworking CallForwardVarargs in FTL
Filip Pizlo
Comment 12 2015-02-13 12:43:55 PST
Created attachment 246542 [details] almost compiling
Filip Pizlo
Comment 13 2015-02-13 14:17:16 PST
Created attachment 246549 [details] it compiles!
Filip Pizlo
Comment 14 2015-02-13 17:36:55 PST
Created attachment 246561 [details] it passes some of our tests! Fails about 55 of them. Still debugging...
Filip Pizlo
Comment 15 2015-02-13 22:04:03 PST
Created attachment 246585 [details] now passes more tests than ever!
Filip Pizlo
Comment 16 2015-02-14 10:11:00 PST
Created attachment 246598 [details] it's passing so many tests I still need to write my own tests for this, however. For example, ConstructVarargs never hits FTL in any of our current tests. Currently the only tests that fail are regress/script-tests/call-spread-apply.js and regress/script-tests/call-spread-call.js. Everything else passes.
Filip Pizlo
Comment 17 2015-02-15 18:08:52 PST
Created attachment 246629 [details] almost passing all tests The latest crash I'm working on is because GetArgument with Int32 flush type tries to speculate, which isn't what we want. This should fix it: https://bugs.webkit.org/show_bug.cgi?id=141623
Filip Pizlo
Comment 18 2015-02-16 12:58:49 PST
Created attachment 246669 [details] more FTL fixes
Filip Pizlo
Comment 19 2015-02-16 13:54:15 PST
Created attachment 246676 [details] more fixes, more tests
Filip Pizlo
Comment 20 2015-02-16 17:06:08 PST
Created attachment 246706 [details] 64-bit tests pass Still have to implement the 32-bit DFG portion.
Filip Pizlo
Comment 21 2015-02-16 18:47:04 PST
The perf results are intriguing. On the major benchmarks, the results are great. But JSRegress is showing signs of trouble - several tests with >2x slow-downs. I'll investigate. Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on dethklok (MacBookPro9,1). VMs tested: "TipOfTree" at /Volumes/Data/pizlo/tertiary/OpenSource/WebKitBuild/Release/jsc (r180189) "Varargs" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r180189) 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 Varargs SunSpider: 3d-cube 4.8283+-0.0954 4.7690+-0.0585 might be 1.0124x faster 3d-morph 6.0459+-0.0834 5.9905+-0.0944 3d-raytrace 6.4282+-0.2942 6.3465+-0.2322 might be 1.0129x faster access-binary-trees 2.0801+-0.0888 2.0139+-0.0466 might be 1.0329x faster access-fannkuch 5.7952+-0.1091 ? 5.8472+-0.0669 ? access-nbody 2.8569+-0.1308 ? 3.0192+-0.3974 ? might be 1.0568x slower access-nsieve 3.7162+-0.1641 3.7150+-0.1195 bitops-3bit-bits-in-byte 1.5581+-0.0447 1.5411+-0.0318 might be 1.0111x faster bitops-bits-in-byte 3.5278+-0.1087 ? 3.5432+-0.0682 ? bitops-bitwise-and 2.0440+-0.0645 2.0327+-0.0592 bitops-nsieve-bits 3.6942+-0.1953 3.5911+-0.0360 might be 1.0287x faster controlflow-recursive 2.1884+-0.0704 2.1702+-0.0298 crypto-aes 4.1401+-0.1562 ? 4.4900+-0.7132 ? might be 1.0845x slower crypto-md5 2.5660+-0.0502 ^ 2.3962+-0.0586 ^ definitely 1.0708x faster crypto-sha1 2.6965+-0.2297 2.6475+-0.1754 might be 1.0185x faster date-format-tofte 9.4598+-0.2065 9.3200+-0.1137 might be 1.0150x faster date-format-xparb 5.2196+-0.1684 ? 5.4882+-0.5348 ? might be 1.0515x slower math-cordic 3.0987+-0.2110 3.0188+-0.0311 might be 1.0265x faster math-partial-sums 5.2854+-0.1328 ? 5.4272+-0.2084 ? might be 1.0268x slower math-spectral-norm 1.8893+-0.0356 ? 1.9375+-0.0518 ? might be 1.0255x slower regexp-dna 8.1920+-1.6161 7.5630+-0.3971 might be 1.0832x faster string-base64 4.4245+-0.4507 ? 4.4338+-0.4299 ? string-fasta 6.6985+-0.6527 6.5530+-0.3834 might be 1.0222x faster string-tagcloud 9.7330+-0.1005 ? 9.7691+-0.5645 ? string-unpack-code 20.1917+-0.7477 19.9587+-0.3141 might be 1.0117x faster string-validate-input 4.6868+-0.2944 4.6316+-0.1272 might be 1.0119x faster <arithmetic> * 5.1171+-0.0933 5.0852+-0.0599 might be 1.0063x faster <geometric> 4.2414+-0.0594 4.2232+-0.0623 might be 1.0043x faster <harmonic> 3.6315+-0.0469 3.6133+-0.0565 might be 1.0050x faster TipOfTree Varargs LongSpider: 3d-cube 881.4194+-13.9875 879.4170+-8.1408 3d-morph 1551.6664+-16.9720 ? 1558.0764+-23.7863 ? 3d-raytrace 752.8704+-9.7494 745.9163+-11.9598 access-binary-trees 989.7576+-9.4885 ? 989.9795+-5.6724 ? access-fannkuch 333.3687+-8.6867 330.4216+-7.9593 access-nbody 623.1973+-5.2673 618.9768+-3.3285 access-nsieve 964.9990+-5.5382 949.9091+-10.9895 might be 1.0159x faster bitops-3bit-bits-in-byte 47.0612+-1.8126 ? 48.9921+-1.8591 ? might be 1.0410x slower bitops-bits-in-byte 107.6802+-2.4302 ? 109.9938+-10.1112 ? might be 1.0215x slower bitops-nsieve-bits 707.6697+-11.9688 ? 711.1864+-5.1370 ? controlflow-recursive 504.2573+-6.1659 ^ 485.1164+-6.7681 ^ definitely 1.0395x faster crypto-aes 689.7016+-7.2003 ? 700.1889+-11.5444 ? might be 1.0152x slower crypto-md5 629.7967+-19.3334 ? 634.6293+-12.2884 ? crypto-sha1 671.4510+-6.5079 ? 673.3282+-4.9632 ? date-format-tofte 804.0556+-17.6721 ? 806.4819+-25.1952 ? date-format-xparb 840.2531+-131.2412 762.9652+-16.2090 might be 1.1013x faster math-cordic 598.9208+-9.7534 596.9500+-6.6383 math-partial-sums 542.0361+-6.8847 ? 542.7876+-7.7068 ? math-spectral-norm 568.7288+-4.2136 ? 575.4578+-7.6344 ? might be 1.0118x slower string-base64 363.3718+-4.7414 363.2862+-5.9981 string-fasta 437.9007+-9.7960 ? 438.8616+-10.8546 ? string-tagcloud 226.8181+-4.8095 217.8351+-4.3486 might be 1.0412x faster <arithmetic> 628.9537+-6.8231 624.5799+-3.1569 might be 1.0070x faster <geometric> * 516.1671+-4.6923 513.7706+-3.7479 might be 1.0047x faster <harmonic> 336.3241+-4.3940 ? 339.6559+-7.7003 ? might be 1.0099x slower TipOfTree Varargs V8Spider: crypto 55.8227+-2.2082 55.0824+-1.3186 might be 1.0134x faster deltablue 90.9392+-5.1112 90.3206+-2.7756 earley-boyer 45.5307+-1.1588 ? 46.4867+-1.6907 ? might be 1.0210x slower raytrace 39.4868+-2.0742 37.9139+-1.3229 might be 1.0415x faster regexp 70.7640+-1.9655 70.7318+-3.6284 richards 83.0937+-2.3514 81.7196+-2.3874 might be 1.0168x faster splay 37.7284+-1.9054 36.7572+-1.1534 might be 1.0264x faster <arithmetic> 60.4808+-0.8950 59.8589+-0.9805 might be 1.0104x faster <geometric> * 57.2520+-0.7667 56.5887+-0.8832 might be 1.0117x faster <harmonic> 54.2504+-0.7908 53.5236+-0.8798 might be 1.0136x faster TipOfTree Varargs Octane: encrypt 0.23636+-0.00582 0.23334+-0.00151 might be 1.0130x faster decrypt 4.03931+-0.02619 ? 4.04704+-0.02880 ? deltablue x2 0.20250+-0.00275 0.20100+-0.00159 earley 0.70505+-0.00706 0.69690+-0.00793 might be 1.0117x faster boyer 5.31139+-0.05581 ? 5.36110+-0.03308 ? navier-stokes x2 5.19338+-0.04326 ? 5.22049+-0.04524 ? raytrace x2 1.24436+-0.05931 1.23212+-0.04363 richards x2 0.13201+-0.00194 ? 0.13371+-0.00404 ? might be 1.0129x slower splay x2 0.37827+-0.00330 0.37588+-0.00266 regexp x2 33.32768+-0.25133 ? 33.80731+-0.36472 ? might be 1.0144x slower pdfjs x2 51.73293+-0.09593 51.49666+-0.48402 mandreel x2 53.17239+-1.82697 52.79042+-0.71716 gbemu x2 48.13580+-2.72095 47.28809+-2.79174 might be 1.0179x faster closure 0.56282+-0.00698 0.56205+-0.00835 jquery 7.22227+-0.14249 ? 7.33856+-0.22317 ? might be 1.0161x slower box2d x2 13.53053+-0.08818 ^ 12.99392+-0.06465 ^ definitely 1.0413x faster zlib x2 400.94647+-2.71702 400.43423+-3.29155 typescript x2 867.70235+-14.05712 857.25203+-13.12071 might be 1.0122x faster <arithmetic> 98.98248+-0.85327 98.15636+-1.17218 might be 1.0084x faster <geometric> * 7.03895+-0.03893 7.00449+-0.04107 might be 1.0049x faster <harmonic> 0.73804+-0.00354 0.73795+-0.00867 might be 1.0001x faster TipOfTree Varargs Kraken: ai-astar 265.247+-4.953 ? 267.734+-3.605 ? audio-beat-detection 113.623+-4.987 111.641+-0.826 might be 1.0178x faster audio-dft 160.901+-6.193 160.386+-4.848 audio-fft 82.935+-1.976 ? 84.361+-3.515 ? might be 1.0172x slower audio-oscillator 243.720+-6.224 240.822+-5.128 might be 1.0120x faster imaging-darkroom 139.630+-4.218 ? 139.695+-3.036 ? imaging-desaturate 63.044+-2.347 ? 64.882+-2.529 ? might be 1.0292x slower imaging-gaussian-blur 111.651+-2.337 ? 114.354+-0.801 ? might be 1.0242x slower json-parse-financial 47.182+-2.390 ? 47.271+-2.158 ? json-stringify-tinderbox 58.979+-1.888 58.928+-2.143 stanford-crypto-aes 58.481+-0.956 ? 58.672+-2.007 ? stanford-crypto-ccm 57.343+-4.574 57.141+-7.693 stanford-crypto-pbkdf2 176.568+-2.281 174.617+-3.758 might be 1.0112x faster stanford-crypto-sha256-iterative 55.021+-3.059 54.157+-1.752 might be 1.0160x faster <arithmetic> * 116.738+-0.747 ? 116.762+-1.009 ? might be 1.0002x slower <geometric> 98.982+-0.718 ? 99.113+-1.721 ? might be 1.0013x slower <harmonic> 85.530+-0.918 ? 85.674+-2.224 ? might be 1.0017x slower TipOfTree Varargs JSRegress: abs-boolean 2.6212+-0.0508 ? 2.7155+-0.1161 ? might be 1.0360x slower adapt-to-double-divide 17.1142+-0.9100 16.6148+-0.0683 might be 1.0301x faster aliased-arguments-getbyval 0.8005+-0.0145 ? 0.8352+-0.0214 ? might be 1.0434x slower allocate-big-object 2.3794+-0.1058 ? 2.3852+-0.1300 ? arity-mismatch-inlining 0.8313+-0.0408 0.8038+-0.0200 might be 1.0341x faster array-access-polymorphic-structure 6.5237+-0.1408 ? 6.5286+-0.4005 ? array-nonarray-polymorhpic-access 35.5060+-2.1529 ? 35.5355+-1.7563 ? array-prototype-every 88.5483+-2.5047 ? 92.0790+-4.2008 ? might be 1.0399x slower array-prototype-forEach 103.4073+-28.1307 88.3062+-2.4138 might be 1.1710x faster array-prototype-map 112.6493+-4.3786 ? 112.9924+-2.1811 ? array-prototype-some 92.0496+-2.6549 91.7615+-2.6859 array-splice-contiguous 41.9680+-2.2560 41.0247+-1.3918 might be 1.0230x faster array-with-double-add 4.0435+-0.0641 ? 4.1392+-0.1183 ? might be 1.0237x slower array-with-double-increment 3.1501+-0.0326 ? 3.1606+-0.0328 ? array-with-double-mul-add 4.9618+-0.0622 ? 5.0511+-0.0770 ? might be 1.0180x slower array-with-double-sum 3.2103+-0.0581 ? 3.2753+-0.1485 ? might be 1.0202x slower array-with-int32-add-sub 6.6989+-0.0480 ? 6.7505+-0.0661 ? array-with-int32-or-double-sum 3.2725+-0.0677 ? 3.2885+-0.0680 ? ArrayBuffer-DataView-alloc-large-long-lived 34.4093+-1.7458 33.6566+-2.4267 might be 1.0224x faster ArrayBuffer-DataView-alloc-long-lived 14.6401+-1.8103 14.2390+-1.7203 might be 1.0282x faster ArrayBuffer-Int32Array-byteOffset 3.7377+-0.6725 3.4513+-0.0569 might be 1.0830x faster ArrayBuffer-Int8Array-alloc-large-long-lived 34.5740+-2.2274 34.5194+-1.3680 ArrayBuffer-Int8Array-alloc-long-lived-buffer 23.7324+-2.5308 23.4676+-1.7975 might be 1.0113x faster ArrayBuffer-Int8Array-alloc-long-lived 13.3031+-1.0186 ? 14.1278+-1.9482 ? might be 1.0620x slower ArrayBuffer-Int8Array-alloc 11.0494+-0.5546 ? 11.2141+-1.1636 ? might be 1.0149x slower asmjs_bool_bug 7.3911+-0.3005 ? 7.3963+-0.2349 ? assign-custom-setter-polymorphic 2.9513+-0.0509 ? 3.0782+-0.1254 ? might be 1.0430x slower assign-custom-setter 4.2493+-0.3050 4.1284+-0.0655 might be 1.0293x faster basic-set 10.2118+-0.3989 ? 10.2993+-0.4182 ? big-int-mul 3.9087+-0.0566 ? 3.9505+-0.0386 ? might be 1.0107x slower boolean-test 2.9321+-0.0203 ? 2.9499+-0.0278 ? branch-fold 3.6477+-0.0449 ? 3.6549+-0.0384 ? by-val-generic 7.9581+-0.2530 7.8708+-0.1251 might be 1.0111x faster call-spread-apply 14.4283+-0.9393 ? 14.6791+-1.1879 ? might be 1.0174x slower call-spread-call 6.4222+-1.0667 5.6920+-0.0650 might be 1.1283x faster captured-assignments 0.4342+-0.0124 0.4341+-0.0094 cast-int-to-double 5.2074+-0.0117 ? 5.3169+-0.1629 ? might be 1.0210x slower cell-argument 8.3357+-0.1236 ? 8.5077+-0.2804 ? might be 1.0206x slower cfg-simplify 2.9085+-0.0557 2.8805+-0.0546 chain-getter-access 9.7635+-0.1384 9.6003+-0.1385 might be 1.0170x faster cmpeq-obj-to-obj-other 10.7663+-1.2426 ? 10.8037+-1.0171 ? constant-test 4.8573+-0.0091 4.8466+-0.0372 DataView-custom-properties 39.8403+-1.0886 39.1313+-1.2256 might be 1.0181x faster delay-tear-off-arguments-strictmode 23.4338+-2.1309 ? 24.3552+-2.1906 ? might be 1.0393x slower deltablue-varargs 1102.4718+-7.6058 ^ 853.4602+-10.0297 ^ definitely 1.2918x faster destructuring-arguments 5.1800+-0.1092 5.1251+-0.0311 might be 1.0107x faster destructuring-swap 5.0170+-0.1728 4.9545+-0.0257 might be 1.0126x faster direct-arguments-getbyval 0.9919+-0.0727 0.9124+-0.0420 might be 1.0871x faster div-boolean-double 5.1696+-0.0234 ? 5.2511+-0.2195 ? might be 1.0158x slower div-boolean 7.7081+-0.0254 ? 7.8997+-0.3786 ? might be 1.0248x slower double-get-by-val-out-of-bounds 4.3038+-0.1769 4.2531+-0.0230 might be 1.0119x faster double-pollution-getbyval 8.8896+-0.1926 8.8106+-0.0916 double-pollution-putbyoffset 4.0842+-0.0904 ? 4.1893+-0.2126 ? might be 1.0257x slower double-to-int32-typed-array-no-inline 2.2601+-0.1611 2.2326+-0.0532 might be 1.0123x faster double-to-int32-typed-array 1.8881+-0.0207 ? 1.8983+-0.0268 ? double-to-uint32-typed-array-no-inline 2.3217+-0.1024 2.2588+-0.0460 might be 1.0278x faster double-to-uint32-typed-array 1.9565+-0.0384 ? 2.0793+-0.1647 ? might be 1.0628x slower elidable-new-object-dag 41.9705+-1.8489 ? 42.5362+-2.0310 ? might be 1.0135x slower elidable-new-object-roflcopter 47.4452+-0.7567 ? 48.8214+-1.4310 ? might be 1.0290x slower elidable-new-object-then-call 39.3924+-1.4435 ? 39.6280+-2.0048 ? elidable-new-object-tree 44.7834+-1.4825 44.7431+-2.2761 empty-string-plus-int 5.3086+-0.2324 5.2903+-0.2062 emscripten-cube2hash 38.5666+-0.9606 37.1876+-1.5146 might be 1.0371x faster external-arguments-getbyval 1.2927+-0.0534 ? 1.3328+-0.1267 ? might be 1.0310x slower external-arguments-putbyval 2.1014+-0.0708 2.0734+-0.1155 might be 1.0135x faster fixed-typed-array-storage-var-index 1.2355+-0.0565 1.2281+-0.0365 fixed-typed-array-storage 0.9691+-0.1444 0.8939+-0.0462 might be 1.0841x faster Float32Array-matrix-mult 4.2517+-0.0931 ! 5.0407+-0.0470 ! definitely 1.1856x slower Float32Array-to-Float64Array-set 58.4541+-2.8761 ! 64.1847+-1.8201 ! definitely 1.0980x slower Float64Array-alloc-long-lived 68.2255+-1.0884 ! 134.2301+-4.0148 ! definitely 1.9674x slower Float64Array-to-Int16Array-set 69.8218+-2.5428 ! 82.9570+-3.9490 ! definitely 1.1881x slower fold-double-to-int 14.5782+-1.5237 ? 14.9761+-1.2871 ? might be 1.0273x slower fold-get-by-id-to-multi-get-by-offset-rare-int 10.4859+-0.7349 ? 10.8909+-0.6563 ? might be 1.0386x slower fold-get-by-id-to-multi-get-by-offset 9.5851+-0.6564 9.4779+-0.9006 might be 1.0113x faster fold-multi-get-by-offset-to-get-by-offset 8.9248+-0.9236 7.6488+-1.7420 might be 1.1668x faster fold-multi-get-by-offset-to-poly-get-by-offset 8.4383+-1.0385 ? 8.4838+-0.8313 ? fold-multi-put-by-offset-to-poly-put-by-offset 7.6959+-0.9565 7.6415+-0.8026 fold-multi-put-by-offset-to-put-by-offset 4.4022+-0.3573 ? 4.9880+-0.5305 ? might be 1.1331x slower fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 9.5805+-1.3161 9.2419+-0.5965 might be 1.0366x faster fold-put-by-id-to-multi-put-by-offset 8.7837+-0.3902 ? 8.8747+-0.7326 ? might be 1.0104x slower fold-put-structure 5.2815+-0.2719 ? 5.5278+-0.7908 ? might be 1.0466x slower for-of-iterate-array-entries 5.7706+-0.3743 ? 5.9722+-0.7588 ? might be 1.0349x slower for-of-iterate-array-keys 2.7918+-0.0305 ? 2.8633+-0.2045 ? might be 1.0256x slower for-of-iterate-array-values 2.4502+-0.0516 ? 2.5372+-0.0771 ? might be 1.0355x slower fround 19.7769+-0.8490 ? 20.1560+-1.9624 ? might be 1.0192x slower ftl-library-inlining-dataview 69.5669+-3.7552 ? 72.5727+-3.2062 ? might be 1.0432x slower ftl-library-inlining 68.0919+-5.8361 ? 86.4943+-19.2504 ? might be 1.2703x slower function-dot-apply 1.4270+-0.0713 ? 1.4848+-0.0868 ? might be 1.0405x slower function-test 3.3230+-0.0349 3.3216+-0.0805 function-with-eval 116.4371+-2.9604 ? 118.1788+-4.8629 ? might be 1.0150x slower gcse-poly-get-less-obvious 19.9911+-1.9644 19.5193+-2.4473 might be 1.0242x faster gcse-poly-get 22.6287+-1.2189 ? 22.6932+-2.5801 ? gcse 4.3161+-0.1181 4.2794+-0.0781 get-by-id-bimorphic-check-structure-elimination-simple 2.7213+-0.0482 ? 2.7402+-0.0770 ? get-by-id-bimorphic-check-structure-elimination 6.1729+-0.2830 6.0600+-0.0507 might be 1.0186x faster get-by-id-chain-from-try-block 10.7787+-1.2202 10.2128+-1.4291 might be 1.0554x faster get-by-id-check-structure-elimination 5.0106+-0.0662 4.9877+-0.0772 get-by-id-proto-or-self 17.6327+-1.5857 ? 18.2055+-1.9995 ? might be 1.0325x slower get-by-id-quadmorphic-check-structure-elimination-simple 2.8802+-0.0262 ? 2.9535+-0.1357 ? might be 1.0254x slower get-by-id-self-or-proto 17.9494+-1.3706 ? 18.9677+-1.2284 ? might be 1.0567x slower get-by-val-out-of-bounds 4.1816+-0.1696 4.1534+-0.0185 get_callee_monomorphic 3.9935+-0.6877 3.8318+-0.2900 might be 1.0422x faster get_callee_polymorphic 3.5280+-0.2792 3.4435+-0.2515 might be 1.0246x faster getter-no-activation 4.5197+-0.3812 4.4920+-0.3195 getter-richards 122.4117+-7.8824 121.4702+-11.1709 getter 5.1069+-0.1335 ? 5.1653+-0.2230 ? might be 1.0114x slower global-var-const-infer-fire-from-opt 0.8751+-0.0766 0.8352+-0.0254 might be 1.0478x faster global-var-const-infer 0.7947+-0.1090 ? 0.8060+-0.1067 ? might be 1.0142x slower HashMap-put-get-iterate-keys 27.2985+-0.8603 27.1536+-0.4345 HashMap-put-get-iterate 27.0245+-0.4352 ? 27.7152+-0.9944 ? might be 1.0256x slower HashMap-string-put-get-iterate 27.4995+-0.4608 27.0775+-1.1013 might be 1.0156x faster hoist-make-rope 10.8986+-0.5091 ? 11.7653+-1.2203 ? might be 1.0795x slower hoist-poly-check-structure-effectful-loop 4.8593+-0.0453 4.8525+-0.0434 hoist-poly-check-structure 3.6612+-0.1106 ? 3.6876+-0.1942 ? imul-double-only 7.6360+-0.5558 ? 8.1098+-0.9204 ? might be 1.0620x slower imul-int-only 9.6540+-0.3078 ? 10.1629+-0.9201 ? might be 1.0527x slower imul-mixed 8.2721+-0.3917 7.8116+-0.3821 might be 1.0589x faster in-four-cases 19.5465+-1.2456 19.0280+-0.6362 might be 1.0273x faster in-one-case-false 9.9301+-0.1526 ? 9.9945+-0.1751 ? in-one-case-true 9.9178+-0.1594 9.8381+-0.1520 in-two-cases 10.2864+-0.2896 10.1700+-0.1969 might be 1.0114x faster indexed-properties-in-objects 2.8654+-0.0470 ? 2.9208+-0.1874 ? might be 1.0194x slower infer-closure-const-then-mov-no-inline 3.7336+-0.0561 3.7261+-0.1211 infer-closure-const-then-mov 19.4357+-0.7902 18.8259+-1.6148 might be 1.0324x faster infer-closure-const-then-put-to-scope-no-inline 12.6548+-1.5165 12.4356+-0.7283 might be 1.0176x faster infer-closure-const-then-put-to-scope 23.6111+-1.1613 ? 23.7346+-1.7248 ? infer-closure-const-then-reenter-no-inline 51.5207+-1.5447 49.1082+-1.7662 might be 1.0491x faster infer-closure-const-then-reenter 19.8989+-1.4809 19.8740+-1.1173 infer-constant-global-property 31.9941+-2.6781 ? 33.2666+-3.1424 ? might be 1.0398x slower infer-constant-property 2.6250+-0.0544 2.6206+-0.0372 infer-one-time-closure-ten-vars 12.0109+-0.2072 ? 12.3396+-0.7536 ? might be 1.0274x slower infer-one-time-closure-two-vars 12.8328+-1.8168 12.0299+-0.9588 might be 1.0667x faster infer-one-time-closure 11.7133+-0.4817 11.6277+-0.4958 infer-one-time-deep-closure 21.8076+-1.5458 21.4972+-1.5976 might be 1.0144x faster inline-arguments-access 1.3980+-0.0397 1.3788+-0.0305 might be 1.0139x faster inline-arguments-aliased-access 1.6316+-0.0906 ? 1.6397+-0.0816 ? inline-arguments-local-escape 13.7856+-1.7195 12.1422+-0.1829 might be 1.1354x faster inline-get-scoped-var 4.1740+-0.1564 4.1435+-0.0694 inlined-put-by-id-transition 10.5479+-0.7039 10.3984+-0.2812 might be 1.0144x faster int-or-other-abs-then-get-by-val 4.8898+-0.0478 4.8555+-0.0647 int-or-other-abs-zero-then-get-by-val 17.4460+-0.9715 ? 18.5558+-1.7431 ? might be 1.0636x slower int-or-other-add-then-get-by-val 4.3171+-0.1340 4.2034+-0.0956 might be 1.0271x faster int-or-other-add 5.2452+-0.1160 5.1812+-0.0404 might be 1.0124x faster int-or-other-div-then-get-by-val 4.2222+-0.0437 ? 4.2812+-0.1237 ? might be 1.0140x slower int-or-other-max-then-get-by-val 4.3131+-0.0294 ? 4.3654+-0.0831 ? might be 1.0121x slower int-or-other-min-then-get-by-val 4.3976+-0.0323 4.3667+-0.0199 int-or-other-mod-then-get-by-val 3.9048+-0.0763 ? 3.9652+-0.1755 ? might be 1.0155x slower int-or-other-mul-then-get-by-val 3.8297+-0.0546 ? 3.9331+-0.2405 ? might be 1.0270x slower int-or-other-neg-then-get-by-val 4.6981+-0.0221 4.6888+-0.0212 int-or-other-neg-zero-then-get-by-val 19.5756+-1.5472 18.1175+-1.8202 might be 1.0805x faster int-or-other-sub-then-get-by-val 4.2305+-0.0370 ? 4.3155+-0.1884 ? might be 1.0201x slower int-or-other-sub 3.4218+-0.0539 ? 3.4270+-0.0459 ? int-overflow-local 4.2774+-0.0214 ? 4.3836+-0.2082 ? might be 1.0248x slower Int16Array-alloc-long-lived 48.3795+-1.1625 ! 116.9775+-3.4435 ! definitely 2.4179x slower Int16Array-bubble-sort-with-byteLength 21.1473+-1.6138 20.9348+-1.3590 might be 1.0102x faster Int16Array-bubble-sort 21.5358+-1.4488 ? 21.8587+-1.4315 ? might be 1.0150x slower Int16Array-load-int-mul 1.4775+-0.0224 ? 1.4834+-0.0417 ? Int16Array-to-Int32Array-set 55.1340+-4.6383 ! 62.8521+-2.6366 ! definitely 1.1400x slower Int32Array-alloc-large 24.9858+-1.2060 ? 25.2924+-0.6240 ? might be 1.0123x slower Int32Array-alloc-long-lived 53.7673+-1.8909 ! 126.4333+-16.4939 ! definitely 2.3515x slower Int32Array-alloc 3.2045+-0.5075 ! 9.3022+-0.6479 ! definitely 2.9029x slower Int32Array-Int8Array-view-alloc 7.5383+-1.1516 ? 7.9868+-0.8453 ? might be 1.0595x slower int52-spill 6.2405+-0.0779 ? 6.4122+-0.1877 ? might be 1.0275x slower Int8Array-alloc-long-lived 45.4456+-1.2396 45.1487+-1.1212 Int8Array-load-with-byteLength 3.3151+-0.0514 ? 3.3340+-0.1064 ? Int8Array-load 3.3125+-0.0537 ? 3.3722+-0.1036 ? might be 1.0180x slower integer-divide 11.6768+-0.1326 ? 11.7314+-0.1118 ? integer-modulo 1.9913+-0.1124 1.9529+-0.1047 might be 1.0197x faster large-int-captured 7.0248+-0.8907 6.9187+-0.8493 might be 1.0153x faster large-int-neg 16.7248+-1.2173 ? 17.0906+-1.3964 ? might be 1.0219x slower large-int 15.8532+-1.4771 15.4820+-0.4188 might be 1.0240x faster logical-not 4.5336+-0.0972 ? 4.5854+-0.0455 ? might be 1.0114x slower lots-of-fields 10.6439+-1.1455 9.9969+-0.3037 might be 1.0647x faster make-indexed-storage 2.9175+-0.0523 ? 2.9629+-0.1185 ? might be 1.0156x slower make-rope-cse 4.1684+-0.2221 ? 4.2858+-0.5441 ? might be 1.0282x slower marsaglia-larger-ints 39.2186+-1.4956 38.9637+-0.3137 marsaglia-osr-entry 23.6506+-1.6019 23.1045+-1.2788 might be 1.0236x faster max-boolean 2.5186+-0.1028 2.4621+-0.0224 might be 1.0229x faster method-on-number 17.2381+-1.6033 16.5872+-0.2592 might be 1.0392x faster min-boolean 2.6821+-0.5134 2.5538+-0.1153 might be 1.0502x faster minus-boolean-double 3.1676+-0.0555 ? 3.2177+-0.1716 ? might be 1.0158x slower minus-boolean 2.3297+-0.0526 ? 2.3431+-0.0241 ? misc-strict-eq 39.0111+-1.9995 38.2700+-0.6152 might be 1.0194x faster mod-boolean-double 11.1165+-0.1679 11.0924+-0.4197 mod-boolean 7.8316+-0.1505 7.7846+-0.0417 mul-boolean-double 3.7261+-0.1150 3.7074+-0.0586 mul-boolean 2.8921+-0.0733 ? 3.0008+-0.2376 ? might be 1.0376x slower neg-boolean 3.1819+-0.0766 3.1407+-0.0481 might be 1.0131x faster negative-zero-divide 0.3337+-0.0082 0.3291+-0.0126 might be 1.0141x faster negative-zero-modulo 0.3516+-0.0426 0.3461+-0.0055 might be 1.0158x faster negative-zero-negate 0.3126+-0.0135 ? 0.3203+-0.0139 ? might be 1.0245x slower nested-function-parsing 23.6678+-0.8656 23.3872+-0.9651 might be 1.0120x faster new-array-buffer-dead 2.6480+-0.0631 ? 2.6657+-0.0347 ? new-array-buffer-push 7.7949+-0.5895 7.5115+-0.6008 might be 1.0377x faster new-array-dead 12.1012+-0.3149 ? 12.2894+-0.6665 ? might be 1.0156x slower new-array-push 5.5441+-0.6130 5.3146+-0.1419 might be 1.0432x faster number-test 2.9841+-0.0595 2.9729+-0.0753 object-closure-call 5.4504+-0.1075 ? 5.4687+-0.0665 ? object-test 3.0424+-0.0357 ? 3.0577+-0.0489 ? obvious-sink-pathology-taken 143.0253+-3.0687 ? 143.6776+-2.6762 ? obvious-sink-pathology 139.9014+-3.7380 139.2068+-2.7311 obviously-elidable-new-object 33.9501+-1.1728 ? 35.3165+-1.4360 ? might be 1.0402x slower plus-boolean-arith 2.5161+-0.0284 ? 2.5201+-0.0222 ? plus-boolean-double 3.2586+-0.1901 3.1591+-0.0495 might be 1.0315x faster plus-boolean 2.3835+-0.0217 2.3811+-0.0220 poly-chain-access-different-prototypes-simple 3.2699+-0.0643 ? 3.2849+-0.0235 ? poly-chain-access-different-prototypes 2.5390+-0.2473 ? 2.6463+-0.2876 ? might be 1.0422x slower poly-chain-access-simpler 3.2838+-0.0521 ? 3.2993+-0.0575 ? poly-chain-access 2.7463+-0.0781 ? 2.7716+-0.0810 ? poly-stricteq 58.5882+-1.3996 ? 59.7712+-1.5602 ? might be 1.0202x slower polymorphic-array-call 1.8600+-0.1043 1.7675+-0.0275 might be 1.0524x faster polymorphic-get-by-id 3.1406+-0.0920 ? 3.1923+-0.1341 ? might be 1.0165x slower polymorphic-put-by-id 30.0338+-2.0337 30.0035+-2.2549 polymorphic-structure 16.1237+-1.5043 14.9755+-0.2461 might be 1.0767x faster polyvariant-monomorphic-get-by-id 8.5378+-0.1801 8.5188+-0.1050 proto-getter-access 9.6822+-0.2914 9.5739+-0.1333 might be 1.0113x faster put-by-id-replace-and-transition 8.6855+-0.4040 8.5883+-0.2173 might be 1.0113x faster put-by-id-slightly-polymorphic 2.8319+-0.0540 ? 2.8479+-0.0527 ? put-by-id 13.0806+-0.7095 ? 13.1803+-0.5893 ? put-by-val-direct 0.5483+-0.0107 ? 0.5563+-0.0107 ? might be 1.0147x slower put-by-val-large-index-blank-indexing-type 6.1962+-0.6805 6.1951+-0.7237 put-by-val-machine-int 2.5099+-0.0133 ! 5.5358+-0.1947 ! definitely 2.2056x slower rare-osr-exit-on-local 14.9390+-0.6329 ? 15.2590+-1.1075 ? might be 1.0214x slower register-pressure-from-osr 21.8924+-0.1230 21.7836+-0.5555 setter 5.2586+-0.0953 5.1667+-0.1546 might be 1.0178x faster simple-activation-demo 26.1979+-1.8037 ? 26.6113+-1.6349 ? might be 1.0158x slower simple-getter-access 12.8826+-0.8359 12.7462+-0.9038 might be 1.0107x faster simple-poly-call-nested 8.0169+-0.2423 ? 8.0260+-0.4032 ? simple-poly-call 1.2127+-0.0246 ? 1.2519+-0.0971 ? might be 1.0323x slower sin-boolean 21.4080+-2.7987 21.2675+-2.7870 sinkable-new-object-dag 70.6248+-2.6608 70.0444+-2.2542 sinkable-new-object-taken 49.7336+-1.1298 ? 50.0622+-1.7758 ? sinkable-new-object 39.4986+-2.1484 38.0152+-1.3297 might be 1.0390x faster slow-array-profile-convergence 2.7525+-0.1317 ? 2.7702+-0.1070 ? slow-convergence 3.1757+-0.0859 3.1300+-0.0591 might be 1.0146x faster sparse-conditional 1.0975+-0.0414 1.0867+-0.0393 splice-to-remove 16.2669+-0.2364 ? 17.0596+-1.1917 ? might be 1.0487x slower string-char-code-at 16.7991+-0.4978 ? 17.2823+-1.1255 ? might be 1.0288x slower string-concat-object 2.3502+-0.3680 2.1676+-0.2191 might be 1.0842x faster string-concat-pair-object 2.2224+-0.4796 ? 2.5049+-0.4427 ? might be 1.1271x slower string-concat-pair-simple 11.2702+-1.1780 10.8129+-0.3857 might be 1.0423x faster string-concat-simple 11.3358+-0.3254 ? 11.5503+-1.3039 ? might be 1.0189x slower string-cons-repeat 7.6313+-0.8740 ? 7.7265+-0.7668 ? might be 1.0125x slower string-cons-tower 7.4762+-0.9404 7.3413+-0.3000 might be 1.0184x faster string-equality 18.6333+-1.4472 ? 19.0858+-1.4626 ? might be 1.0243x slower string-get-by-val-big-char 6.9763+-0.2927 ? 7.0665+-0.2846 ? might be 1.0129x slower string-get-by-val-out-of-bounds-insane 3.8803+-0.0766 ? 4.1521+-0.7324 ? might be 1.0701x slower string-get-by-val-out-of-bounds 5.1993+-0.0810 ? 5.2216+-0.0693 ? string-get-by-val 3.2751+-0.1406 ? 3.2946+-0.0478 ? string-hash 1.9856+-0.0120 ? 2.0042+-0.0158 ? string-long-ident-equality 14.7498+-0.2195 ? 15.2272+-0.3463 ? might be 1.0324x slower string-repeat-arith 34.8779+-3.6760 ? 35.1596+-2.4053 ? string-sub 70.2493+-2.7303 69.2666+-3.1070 might be 1.0142x faster string-test 2.8878+-0.0531 2.8728+-0.0581 string-var-equality 31.6888+-1.3291 ? 33.3819+-2.1741 ? might be 1.0534x slower structure-hoist-over-transitions 2.3500+-0.0344 ? 2.3623+-0.0600 ? substring-concat-weird 39.3584+-2.4579 ? 40.0370+-1.7666 ? might be 1.0172x slower substring-concat 41.7503+-1.7794 39.8837+-0.7298 might be 1.0468x faster substring 46.0614+-1.7810 ? 46.4079+-1.4951 ? switch-char-constant 2.6933+-0.0298 ? 2.7015+-0.0363 ? switch-char 7.0086+-0.8838 6.2962+-0.2390 might be 1.1131x faster switch-constant 10.1568+-0.4310 ? 10.4425+-0.5088 ? might be 1.0281x slower switch-string-basic-big-var 17.3322+-1.7311 15.6095+-1.2567 might be 1.1104x faster switch-string-basic-big 15.9558+-2.1285 14.9291+-1.6003 might be 1.0688x faster switch-string-basic-var 14.9854+-0.9332 ? 15.7466+-1.8105 ? might be 1.0508x slower switch-string-basic 15.0549+-2.2516 14.4403+-1.8227 might be 1.0426x faster switch-string-big-length-tower-var 21.8507+-1.7290 21.1774+-1.2508 might be 1.0318x faster switch-string-length-tower-var 16.8516+-1.9020 16.2882+-1.8292 might be 1.0346x faster switch-string-length-tower 12.7258+-0.6479 ? 14.4002+-1.7607 ? might be 1.1316x slower switch-string-short 13.6778+-1.7405 12.9697+-1.4848 might be 1.0546x faster switch 13.5416+-1.7594 13.2585+-1.9247 might be 1.0214x faster tear-off-arguments-simple 1.7778+-0.0412 ? 1.7989+-0.0417 ? might be 1.0119x slower tear-off-arguments 2.6882+-0.0571 2.6562+-0.0385 might be 1.0121x faster temporal-structure 12.4624+-0.8400 ? 12.5753+-0.9146 ? to-int32-boolean 13.7072+-0.3957 ? 13.7639+-0.2956 ? undefined-property-access 390.2414+-5.1663 388.8454+-8.1147 undefined-test 3.0178+-0.0432 2.9982+-0.0813 unprofiled-licm 22.4699+-0.3402 ? 22.9527+-1.4431 ? might be 1.0215x slower weird-inlining-const-prop 1.9775+-0.0901 ? 2.0736+-0.1217 ? might be 1.0486x slower <arithmetic> 21.3187+-0.0745 21.3086+-0.1699 might be 1.0005x faster <geometric> * 8.1629+-0.0238 ! 8.2977+-0.0465 ! definitely 1.0165x slower <harmonic> 4.0151+-0.0123 ? 4.0449+-0.0257 ? might be 1.0074x slower TipOfTree Varargs AsmBench: bigfib.cpp 501.5117+-4.8465 ? 501.7469+-2.4127 ? cray.c 501.2266+-141.7163 451.0122+-8.1881 might be 1.1113x faster dry.c 502.6892+-13.3196 496.4124+-15.2110 might be 1.0126x faster FloatMM.c 735.8057+-5.1917 ? 742.5267+-16.2023 ? gcc-loops.cpp 4215.1259+-38.3104 ? 4216.4792+-44.5235 ? n-body.c 1000.7433+-7.7089 ? 1006.4331+-7.0989 ? Quicksort.c 451.5618+-5.7585 ? 475.6743+-59.4393 ? might be 1.0534x slower stepanov_container.cpp 3607.4513+-29.5355 ? 3647.0526+-57.3167 ? might be 1.0110x slower Towers.c 263.5458+-3.7305 ? 267.9293+-15.6823 ? might be 1.0166x slower <arithmetic> 1308.8513+-22.1903 ? 1311.6963+-11.8905 ? might be 1.0022x slower <geometric> * 818.4368+-24.3210 817.7156+-13.7320 might be 1.0009x faster <harmonic> 602.4026+-17.9361 ? 602.4821+-14.0988 ? might be 1.0001x slower TipOfTree Varargs CompressionBench: huffman 506.2357+-6.7995 494.6323+-11.0881 might be 1.0235x faster arithmetic-simple 422.5426+-7.1369 ? 426.2483+-4.7347 ? arithmetic-precise 325.8688+-5.3953 323.8330+-1.9317 arithmetic-complex-precise 323.3937+-4.7004 318.5152+-4.6211 might be 1.0153x faster arithmetic-precise-order-0 463.8657+-8.9762 461.3990+-4.8314 arithmetic-precise-order-1 363.3422+-6.1786 ? 364.0529+-4.8991 ? arithmetic-precise-order-2 397.0428+-5.4652 ? 398.5431+-3.7641 ? arithmetic-simple-order-1 452.7095+-4.8820 ? 452.7105+-5.8528 ? arithmetic-simple-order-2 505.8470+-11.0134 505.4974+-8.3541 lz-string 342.2450+-6.3964 ? 351.0746+-6.2713 ? might be 1.0258x slower <arithmetic> 410.3093+-2.0180 409.6506+-1.8749 might be 1.0016x faster <geometric> * 404.7911+-1.9706 404.3671+-1.9193 might be 1.0010x faster <harmonic> 399.3305+-1.9341 399.0836+-1.9950 might be 1.0006x faster TipOfTree Varargs All benchmarks: <arithmetic> 102.8410+-0.5303 102.5648+-0.2820 might be 1.0027x faster <geometric> 13.4697+-0.0420 ! 13.6105+-0.0553 ! definitely 1.0105x slower <harmonic> 3.3731+-0.0091 ? 3.3865+-0.0061 ? might be 1.0040x slower TipOfTree Varargs Geomean of preferred means: <scaled-result> 65.4296+-0.4684 65.3259+-0.1854 might be 1.0016x faster
Filip Pizlo
Comment 22 2015-02-16 19:19:46 PST
I figured out the performance regressions: I broke typed array constructor inlining, and this appears to only have mattered on our microbenchmarks. I broke it accidentally as part of the refactoring I had to do in the inlining code.
Filip Pizlo
Comment 23 2015-02-16 20:25:23 PST
OK, all performance is good now. Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on dethklok (MacBookPro9,1). VMs tested: "TipOfTree" at /Volumes/Data/pizlo/tertiary/OpenSource/WebKitBuild/Release/jsc (r180189) "Varargs" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r180189) 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 Varargs SunSpider: 3d-cube 4.8026+-0.0567 ? 4.8888+-0.1662 ? might be 1.0179x slower 3d-morph 6.0504+-0.0365 ? 6.0796+-0.1231 ? 3d-raytrace 7.0231+-1.9006 6.2440+-0.1291 might be 1.1248x faster access-binary-trees 2.0839+-0.1252 2.0438+-0.1017 might be 1.0197x faster access-fannkuch 5.8274+-0.2128 ? 5.8317+-0.0990 ? access-nbody 2.8365+-0.1328 ? 2.8560+-0.0592 ? access-nsieve 3.7153+-0.0563 ? 3.9078+-0.6038 ? might be 1.0518x slower bitops-3bit-bits-in-byte 1.5376+-0.0201 1.5277+-0.0193 bitops-bits-in-byte 3.5793+-0.0653 3.4870+-0.1055 might be 1.0265x faster bitops-bitwise-and 2.0343+-0.0429 ? 2.2374+-0.4134 ? might be 1.0999x slower bitops-nsieve-bits 3.6144+-0.0658 ? 3.7081+-0.2725 ? might be 1.0259x slower controlflow-recursive 2.2560+-0.1913 2.1695+-0.0268 might be 1.0399x faster crypto-aes 4.3143+-0.6121 4.1850+-0.1573 might be 1.0309x faster crypto-md5 2.6027+-0.0700 ^ 2.3711+-0.0450 ^ definitely 1.0976x faster crypto-sha1 2.5798+-0.1380 2.5085+-0.1086 might be 1.0284x faster date-format-tofte 9.3044+-0.1986 ? 9.3682+-0.2732 ? date-format-xparb 5.1751+-0.1294 ? 5.2762+-0.1737 ? might be 1.0195x slower math-cordic 3.0764+-0.1308 ? 3.0803+-0.0798 ? math-partial-sums 5.6898+-0.5490 5.5437+-0.2932 might be 1.0263x faster math-spectral-norm 1.8999+-0.0328 ? 1.9185+-0.0459 ? regexp-dna 8.0837+-1.1750 7.8398+-1.2557 might be 1.0311x faster string-base64 4.5736+-0.7479 4.5356+-0.5501 string-fasta 6.3963+-0.1003 ? 6.7719+-0.6303 ? might be 1.0587x slower string-tagcloud 9.6937+-0.1574 ? 9.8830+-0.3934 ? might be 1.0195x slower string-unpack-code 20.4762+-0.9067 ? 20.5898+-1.0744 ? string-validate-input 4.5740+-0.0523 ? 4.8623+-0.3485 ? might be 1.0630x slower <arithmetic> * 5.1462+-0.0855 5.1429+-0.0685 might be 1.0006x faster <geometric> 4.2549+-0.0464 4.2496+-0.0609 might be 1.0012x faster <harmonic> 3.6352+-0.0379 3.6259+-0.0532 might be 1.0026x faster TipOfTree Varargs LongSpider: 3d-cube 908.4274+-15.4800 899.8439+-12.9558 3d-morph 1598.7533+-26.3411 1592.8800+-27.1534 3d-raytrace 774.0499+-5.4868 768.2398+-8.9377 access-binary-trees 1006.7487+-6.4017 1001.7826+-6.2242 access-fannkuch 340.7502+-6.7285 329.5375+-5.4130 might be 1.0340x faster access-nbody 662.8798+-71.4904 638.2287+-8.2131 might be 1.0386x faster access-nsieve 971.4976+-11.6297 963.4171+-6.3078 bitops-3bit-bits-in-byte 48.1631+-2.1012 48.1154+-2.0868 bitops-bits-in-byte 118.9046+-12.2232 117.3034+-9.4061 might be 1.0137x faster bitops-nsieve-bits 726.0989+-9.9088 ? 732.0344+-11.0202 ? controlflow-recursive 518.3383+-8.5805 501.5930+-12.6159 might be 1.0334x faster crypto-aes 702.6232+-9.4370 ? 704.7467+-8.9687 ? crypto-md5 646.6972+-14.4554 ? 652.7996+-19.1162 ? crypto-sha1 692.9813+-9.9172 ? 698.0936+-19.8181 ? date-format-tofte 814.8175+-11.2269 ? 826.4238+-34.2474 ? might be 1.0142x slower date-format-xparb 787.5695+-19.9233 779.1775+-23.4253 might be 1.0108x faster math-cordic 612.5157+-6.3295 609.6938+-8.9129 math-partial-sums 554.4149+-9.0186 ? 615.6208+-95.6192 ? might be 1.1104x slower math-spectral-norm 593.5487+-8.4247 592.4699+-23.0137 string-base64 369.9431+-6.5546 366.3904+-4.0005 string-fasta 439.4980+-7.9096 ? 441.8711+-7.2653 ? string-tagcloud 231.9950+-5.6261 225.1798+-4.9746 might be 1.0303x faster <arithmetic> 641.8734+-3.6237 641.1565+-6.2110 might be 1.0011x faster <geometric> * 528.7052+-4.4849 527.2353+-5.1686 might be 1.0028x faster <harmonic> 347.1165+-6.9698 345.4101+-7.6724 might be 1.0049x faster TipOfTree Varargs V8Spider: crypto 57.2177+-3.6804 55.5971+-1.3303 might be 1.0291x faster deltablue 85.6786+-8.1014 ? 87.7258+-4.3231 ? might be 1.0239x slower earley-boyer 47.1467+-1.8877 45.5576+-0.8665 might be 1.0349x faster raytrace 40.0444+-1.7066 38.5417+-1.1992 might be 1.0390x faster regexp 70.0061+-1.9349 ? 72.3778+-3.0744 ? might be 1.0339x slower richards 82.4088+-3.2801 ? 82.7550+-2.3680 ? splay 36.3880+-2.9921 ? 37.7218+-2.6937 ? might be 1.0367x slower <arithmetic> 59.8415+-0.9281 ? 60.0396+-0.7153 ? might be 1.0033x slower <geometric> * 56.8792+-1.0677 ? 56.8811+-0.5210 ? might be 1.0000x slower <harmonic> 54.0444+-1.4113 53.9032+-0.6379 might be 1.0026x faster TipOfTree Varargs Octane: encrypt 0.24429+-0.00260 0.24011+-0.00284 might be 1.0174x faster decrypt 4.17529+-0.09454 4.15439+-0.06416 deltablue x2 0.20785+-0.00408 ? 0.20809+-0.00331 ? earley 0.71511+-0.00448 0.71203+-0.01544 boyer 5.49665+-0.08676 5.42468+-0.07401 might be 1.0133x faster navier-stokes x2 5.38262+-0.05910 ? 5.57102+-0.45325 ? might be 1.0350x slower raytrace x2 1.21768+-0.04730 ? 1.35731+-0.28682 ? might be 1.1147x slower richards x2 0.13823+-0.00135 0.13805+-0.00285 splay x2 0.38471+-0.00151 ? 0.38684+-0.00514 ? regexp x2 34.55647+-0.60553 34.34950+-0.41144 pdfjs x2 53.59289+-0.43010 ^ 52.35451+-0.54997 ^ definitely 1.0237x faster mandreel x2 54.00938+-0.34959 53.85736+-0.46010 gbemu x2 51.27613+-3.63519 49.20525+-3.32433 might be 1.0421x faster closure 0.58076+-0.01196 ? 0.59232+-0.00869 ? might be 1.0199x slower jquery 7.44985+-0.10619 ? 7.54808+-0.19784 ? might be 1.0132x slower box2d x2 13.76926+-0.17888 ^ 13.18605+-0.09848 ^ definitely 1.0442x faster zlib x2 399.63437+-14.00056 398.55208+-13.00459 typescript x2 871.98271+-13.62226 871.75940+-16.42152 <arithmetic> 99.69888+-1.40204 99.35075+-1.14040 might be 1.0035x faster <geometric> * 7.21011+-0.04684 ? 7.21477+-0.07230 ? might be 1.0006x slower <harmonic> 0.76136+-0.00493 ? 0.76340+-0.00470 ? might be 1.0027x slower TipOfTree Varargs Kraken: ai-astar 275.056+-6.758 274.881+-7.115 audio-beat-detection 114.697+-2.225 112.416+-0.897 might be 1.0203x faster audio-dft 167.727+-7.843 ? 170.386+-8.763 ? might be 1.0159x slower audio-fft 87.381+-3.727 85.261+-1.798 might be 1.0249x faster audio-oscillator 248.447+-8.101 ? 252.176+-8.846 ? might be 1.0150x slower imaging-darkroom 148.031+-4.077 142.918+-5.047 might be 1.0358x faster imaging-desaturate 64.936+-2.599 ? 65.988+-3.548 ? might be 1.0162x slower imaging-gaussian-blur 115.969+-3.640 113.935+-2.542 might be 1.0179x faster json-parse-financial 48.101+-3.141 45.361+-1.662 might be 1.0604x faster json-stringify-tinderbox 61.687+-3.626 58.136+-2.064 might be 1.0611x faster stanford-crypto-aes 59.113+-1.579 ? 59.206+-1.492 ? stanford-crypto-ccm 64.187+-2.853 55.956+-8.976 might be 1.1471x faster stanford-crypto-pbkdf2 180.639+-5.349 179.536+-7.031 stanford-crypto-sha256-iterative 56.741+-4.047 ? 57.864+-4.413 ? might be 1.0198x slower <arithmetic> * 120.908+-1.064 119.573+-1.267 might be 1.0112x faster <geometric> 102.763+-1.213 100.595+-1.592 might be 1.0216x faster <harmonic> 88.910+-1.396 86.228+-1.931 might be 1.0311x faster TipOfTree Varargs JSRegress: abs-boolean 2.6377+-0.0478 2.6261+-0.0228 adapt-to-double-divide 17.2713+-1.4470 16.8875+-0.2573 might be 1.0227x faster aliased-arguments-getbyval 0.8099+-0.0128 ? 0.8441+-0.0230 ? might be 1.0423x slower allocate-big-object 2.4469+-0.1833 2.4453+-0.2034 arity-mismatch-inlining 0.8331+-0.0382 0.8124+-0.0204 might be 1.0255x faster array-access-polymorphic-structure 6.6504+-0.8718 ? 6.7401+-0.8589 ? might be 1.0135x slower array-nonarray-polymorhpic-access 36.4305+-1.6605 ? 40.2568+-9.1696 ? might be 1.1050x slower array-prototype-every 90.8488+-3.6178 90.0061+-3.8067 array-prototype-forEach 103.5016+-30.9499 90.2314+-3.5981 might be 1.1471x faster array-prototype-map 114.6580+-4.1355 ? 117.2358+-2.7495 ? might be 1.0225x slower array-prototype-some 92.2380+-3.8656 90.3232+-2.6296 might be 1.0212x faster array-splice-contiguous 44.8178+-1.9957 44.2948+-1.8299 might be 1.0118x faster array-with-double-add 4.0507+-0.0372 4.0458+-0.0647 array-with-double-increment 3.1903+-0.0473 3.1876+-0.0722 array-with-double-mul-add 5.0199+-0.0758 4.9993+-0.0399 array-with-double-sum 3.2251+-0.0490 3.2149+-0.0281 array-with-int32-add-sub 6.7545+-0.1483 ? 7.4878+-1.9125 ? might be 1.1086x slower array-with-int32-or-double-sum 3.2842+-0.0617 ? 3.3610+-0.1915 ? might be 1.0234x slower ArrayBuffer-DataView-alloc-large-long-lived 35.2952+-2.2518 ? 35.8361+-1.1746 ? might be 1.0153x slower ArrayBuffer-DataView-alloc-long-lived 13.9316+-1.3197 ? 14.1142+-1.0574 ? might be 1.0131x slower ArrayBuffer-Int32Array-byteOffset 3.4515+-0.0448 ? 3.4736+-0.0454 ? ArrayBuffer-Int8Array-alloc-large-long-lived 32.9243+-1.2013 ? 33.0442+-1.3008 ? ArrayBuffer-Int8Array-alloc-long-lived-buffer 23.6692+-1.8182 ? 25.1093+-7.1848 ? might be 1.0608x slower ArrayBuffer-Int8Array-alloc-long-lived 13.0114+-0.8883 ? 13.8030+-1.5158 ? might be 1.0608x slower ArrayBuffer-Int8Array-alloc 12.7911+-3.6218 11.4818+-0.8549 might be 1.1140x faster asmjs_bool_bug 7.5516+-0.1908 7.3816+-0.1379 might be 1.0230x faster assign-custom-setter-polymorphic 2.9897+-0.0799 ? 3.0284+-0.0761 ? might be 1.0129x slower assign-custom-setter 4.3310+-0.5341 4.1318+-0.0461 might be 1.0482x faster basic-set 10.3272+-0.2668 10.2016+-0.2047 might be 1.0123x faster big-int-mul 3.9340+-0.1285 ? 4.0498+-0.2215 ? might be 1.0294x slower boolean-test 2.9945+-0.0927 2.9519+-0.0255 might be 1.0144x faster branch-fold 3.6652+-0.0283 3.6361+-0.0452 by-val-generic 7.8883+-0.1142 ? 7.9510+-0.1299 ? call-spread-apply 16.0472+-1.5990 14.6655+-2.0460 might be 1.0942x faster call-spread-call 6.5043+-1.0307 5.7029+-0.0668 might be 1.1405x faster captured-assignments 0.4437+-0.0062 ? 0.4476+-0.0042 ? cast-int-to-double 5.2476+-0.0941 5.2428+-0.0564 cell-argument 8.1771+-0.2442 ? 8.2955+-0.0698 ? might be 1.0145x slower cfg-simplify 2.8748+-0.0535 ? 2.9481+-0.0920 ? might be 1.0255x slower chain-getter-access 9.7045+-0.1511 9.6715+-0.1783 cmpeq-obj-to-obj-other 9.8755+-0.4111 ? 10.2097+-0.6870 ? might be 1.0338x slower constant-test 4.8528+-0.0237 ? 4.9151+-0.1290 ? might be 1.0128x slower DataView-custom-properties 39.7219+-1.6810 38.8782+-1.2013 might be 1.0217x faster delay-tear-off-arguments-strictmode 24.7915+-2.5167 23.3879+-1.2208 might be 1.0600x faster deltablue-varargs 1128.9684+-13.4659 ^ 869.3823+-6.4294 ^ definitely 1.2986x faster destructuring-arguments 5.2672+-0.1878 5.1293+-0.0532 might be 1.0269x faster destructuring-swap 4.9635+-0.0276 4.9562+-0.0338 direct-arguments-getbyval 1.0118+-0.2122 0.9296+-0.1317 might be 1.0884x faster div-boolean-double 5.1831+-0.0671 ? 5.1976+-0.0825 ? div-boolean 7.8610+-0.3418 7.8045+-0.1431 double-get-by-val-out-of-bounds 4.5775+-0.7376 4.3300+-0.2577 might be 1.0572x faster double-pollution-getbyval 8.8092+-0.0545 8.8013+-0.0289 double-pollution-putbyoffset 4.0352+-0.0172 ^ 4.0001+-0.0146 ^ definitely 1.0088x faster double-to-int32-typed-array-no-inline 2.2837+-0.1089 ? 2.2909+-0.0737 ? double-to-int32-typed-array 1.8899+-0.0664 ? 1.9104+-0.0481 ? might be 1.0109x slower double-to-uint32-typed-array-no-inline 2.3076+-0.0628 2.3043+-0.0406 double-to-uint32-typed-array 1.9854+-0.0299 ? 1.9926+-0.0513 ? elidable-new-object-dag 41.9845+-1.3982 41.5133+-1.0797 might be 1.0113x faster elidable-new-object-roflcopter 49.6423+-2.1235 48.4762+-1.6715 might be 1.0241x faster elidable-new-object-then-call 39.2714+-1.7955 39.0883+-2.0406 elidable-new-object-tree 45.9883+-1.6952 43.7314+-1.4148 might be 1.0516x faster empty-string-plus-int 5.3034+-0.2852 ? 5.6281+-0.8568 ? might be 1.0612x slower emscripten-cube2hash 37.8470+-0.7233 ? 37.8811+-1.9372 ? external-arguments-getbyval 1.3445+-0.1326 1.3093+-0.0452 might be 1.0269x faster external-arguments-putbyval 2.0651+-0.0817 ? 2.4710+-0.6981 ? might be 1.1965x slower fixed-typed-array-storage-var-index 1.3889+-0.3333 1.2710+-0.0625 might be 1.0928x faster fixed-typed-array-storage 0.9009+-0.0701 ? 0.9010+-0.0602 ? Float32Array-matrix-mult 4.2402+-0.1255 ? 4.2472+-0.0959 ? Float32Array-to-Float64Array-set 58.6918+-3.5148 ? 61.5549+-2.7903 ? might be 1.0488x slower Float64Array-alloc-long-lived 66.2131+-1.2333 ? 66.5959+-2.3150 ? Float64Array-to-Int16Array-set 71.1981+-0.6071 70.7301+-3.7265 fold-double-to-int 14.2998+-1.7390 ? 14.6755+-1.3246 ? might be 1.0263x slower fold-get-by-id-to-multi-get-by-offset-rare-int 10.5632+-1.5409 ? 10.9552+-0.4857 ? might be 1.0371x slower fold-get-by-id-to-multi-get-by-offset 8.5971+-0.5248 ? 9.4651+-0.5530 ? might be 1.1010x slower fold-multi-get-by-offset-to-get-by-offset 8.9455+-0.9358 8.3585+-0.9818 might be 1.0702x faster fold-multi-get-by-offset-to-poly-get-by-offset 8.4058+-1.3022 ? 8.8861+-0.9172 ? might be 1.0571x slower fold-multi-put-by-offset-to-poly-put-by-offset 7.6353+-1.7273 ? 7.8753+-0.9380 ? might be 1.0314x slower fold-multi-put-by-offset-to-put-by-offset 4.8990+-0.2920 4.5053+-0.4021 might be 1.0874x faster fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 10.2271+-1.0402 9.3031+-1.1251 might be 1.0993x faster fold-put-by-id-to-multi-put-by-offset 9.1123+-0.7102 8.6698+-0.6625 might be 1.0510x faster fold-put-structure 5.7914+-0.9123 5.7796+-0.6543 for-of-iterate-array-entries 5.9075+-0.8253 ? 6.6237+-1.0269 ? might be 1.1212x slower for-of-iterate-array-keys 2.8931+-0.1871 ? 2.9036+-0.2203 ? for-of-iterate-array-values 2.6142+-0.0791 ? 2.6244+-0.2241 ? fround 19.4590+-0.4524 19.2622+-0.5047 might be 1.0102x faster ftl-library-inlining-dataview 69.4948+-2.0472 ? 70.5918+-4.6007 ? might be 1.0158x slower ftl-library-inlining 84.0391+-17.7823 ? 84.3176+-11.9040 ? function-dot-apply 1.4873+-0.1187 ? 1.4989+-0.0817 ? function-test 3.3677+-0.1178 3.3170+-0.0377 might be 1.0153x faster function-with-eval 119.9775+-5.9320 114.4809+-2.4122 might be 1.0480x faster gcse-poly-get-less-obvious 19.6985+-1.7078 ? 21.2074+-1.3506 ? might be 1.0766x slower gcse-poly-get 22.3350+-2.6810 22.2955+-1.5330 gcse 4.3015+-0.1976 4.2998+-0.1830 get-by-id-bimorphic-check-structure-elimination-simple 2.7065+-0.0494 ? 2.7800+-0.1353 ? might be 1.0272x slower get-by-id-bimorphic-check-structure-elimination 6.0774+-0.3222 ? 6.1314+-0.1992 ? get-by-id-chain-from-try-block 10.5632+-1.5220 9.1527+-0.8315 might be 1.1541x faster get-by-id-check-structure-elimination 5.0083+-0.0573 ? 5.0472+-0.1323 ? get-by-id-proto-or-self 18.5756+-2.0665 17.3213+-0.9749 might be 1.0724x faster get-by-id-quadmorphic-check-structure-elimination-simple 2.8789+-0.0520 2.8640+-0.0143 get-by-id-self-or-proto 17.3221+-0.9450 ? 17.8546+-0.5510 ? might be 1.0307x slower get-by-val-out-of-bounds 4.1611+-0.0774 ? 4.1709+-0.0703 ? get_callee_monomorphic 3.7891+-0.1650 3.7732+-0.2186 get_callee_polymorphic 3.4610+-0.0603 3.3940+-0.0592 might be 1.0197x faster getter-no-activation 4.6043+-0.3420 4.4551+-0.4731 might be 1.0335x faster getter-richards 126.8127+-5.3953 ? 127.3516+-4.3695 ? getter 5.0455+-0.0441 ? 5.0798+-0.0714 ? global-var-const-infer-fire-from-opt 0.8233+-0.0358 ? 0.9151+-0.1241 ? might be 1.1114x slower global-var-const-infer 0.8808+-0.1033 ^ 0.7131+-0.0262 ^ definitely 1.2353x faster HashMap-put-get-iterate-keys 27.1720+-0.6724 ? 27.2942+-0.4762 ? HashMap-put-get-iterate 27.8050+-1.0344 ? 27.8396+-0.8134 ? HashMap-string-put-get-iterate 27.1544+-1.0001 26.5079+-0.5395 might be 1.0244x faster hoist-make-rope 11.9669+-1.3628 11.3705+-0.9499 might be 1.0524x faster hoist-poly-check-structure-effectful-loop 4.9547+-0.2502 4.9170+-0.1121 hoist-poly-check-structure 3.6540+-0.1390 3.6132+-0.0392 might be 1.0113x faster imul-double-only 7.6957+-0.4688 ? 7.7939+-0.4535 ? might be 1.0128x slower imul-int-only 10.0865+-0.8308 9.5500+-0.1753 might be 1.0562x faster imul-mixed 7.6761+-0.3576 ? 7.9413+-0.5426 ? might be 1.0345x slower in-four-cases 18.9210+-0.2240 ? 18.9618+-0.1739 ? in-one-case-false 9.9697+-0.2412 9.8764+-0.1707 in-one-case-true 9.9499+-0.2079 ? 9.9678+-0.2899 ? in-two-cases 10.0929+-0.0543 ? 10.0970+-0.0866 ? indexed-properties-in-objects 2.8582+-0.0165 ? 2.8665+-0.0620 ? infer-closure-const-then-mov-no-inline 3.6946+-0.0290 ? 3.7004+-0.0135 ? infer-closure-const-then-mov 18.9068+-1.3999 ? 19.5348+-1.3789 ? might be 1.0332x slower infer-closure-const-then-put-to-scope-no-inline 12.9336+-1.6826 ? 13.1229+-2.0299 ? might be 1.0146x slower infer-closure-const-then-put-to-scope 24.0260+-1.7423 23.8776+-1.7231 infer-closure-const-then-reenter-no-inline 51.5336+-3.3131 ? 51.5431+-2.6450 ? infer-closure-const-then-reenter 18.6663+-0.4180 ? 19.0751+-1.0524 ? might be 1.0219x slower infer-constant-global-property 31.9668+-2.1745 ? 33.7634+-3.2238 ? might be 1.0562x slower infer-constant-property 2.6960+-0.1349 2.6542+-0.0379 might be 1.0157x faster infer-one-time-closure-ten-vars 11.9591+-0.1126 ? 12.3551+-1.3133 ? might be 1.0331x slower infer-one-time-closure-two-vars 12.0148+-1.4513 11.7224+-0.3021 might be 1.0249x faster infer-one-time-closure 11.8381+-0.5616 11.6703+-0.2728 might be 1.0144x faster infer-one-time-deep-closure 21.3217+-1.4321 20.6117+-0.7689 might be 1.0344x faster inline-arguments-access 1.4198+-0.0641 ? 1.4714+-0.1059 ? might be 1.0364x slower inline-arguments-aliased-access 1.6140+-0.0440 1.6122+-0.0428 inline-arguments-local-escape 12.4343+-0.4100 ? 12.5323+-0.5878 ? inline-get-scoped-var 4.1412+-0.1152 ? 4.2033+-0.1242 ? might be 1.0150x slower inlined-put-by-id-transition 10.2543+-0.5430 ? 10.6163+-0.8226 ? might be 1.0353x slower int-or-other-abs-then-get-by-val 4.8823+-0.0420 ? 4.8839+-0.0190 ? int-or-other-abs-zero-then-get-by-val 17.4277+-0.4396 17.1905+-0.3863 might be 1.0138x faster int-or-other-add-then-get-by-val 4.3526+-0.2856 4.2052+-0.0249 might be 1.0350x faster int-or-other-add 5.3398+-0.2020 5.2438+-0.1037 might be 1.0183x faster int-or-other-div-then-get-by-val 4.2901+-0.0805 ? 4.3413+-0.2182 ? might be 1.0119x slower int-or-other-max-then-get-by-val 4.4120+-0.1236 4.3840+-0.0995 int-or-other-min-then-get-by-val 4.4083+-0.0691 ? 4.4243+-0.0704 ? int-or-other-mod-then-get-by-val 3.9061+-0.0579 3.8982+-0.0808 int-or-other-mul-then-get-by-val 3.8535+-0.0500 ? 3.8556+-0.1136 ? int-or-other-neg-then-get-by-val 4.7567+-0.1728 4.7091+-0.0494 might be 1.0101x faster int-or-other-neg-zero-then-get-by-val 18.8747+-1.7125 17.9097+-1.5164 might be 1.0539x faster int-or-other-sub-then-get-by-val 4.4021+-0.4287 4.3807+-0.3143 int-or-other-sub 3.4543+-0.0444 ? 3.5116+-0.1983 ? might be 1.0166x slower int-overflow-local 4.3218+-0.1094 4.3100+-0.0753 Int16Array-alloc-long-lived 49.8179+-2.4099 48.9523+-1.5323 might be 1.0177x faster Int16Array-bubble-sort-with-byteLength 21.7593+-1.0312 ^ 20.1429+-0.3934 ^ definitely 1.0802x faster Int16Array-bubble-sort 21.5291+-1.0514 ? 22.0817+-1.5141 ? might be 1.0257x slower Int16Array-load-int-mul 1.5117+-0.1035 1.4672+-0.0157 might be 1.0303x faster Int16Array-to-Int32Array-set 54.9065+-2.9240 ? 54.9702+-2.3688 ? Int32Array-alloc-large 24.8816+-0.7255 ? 24.9344+-0.7280 ? Int32Array-alloc-long-lived 54.4545+-1.4576 54.3951+-2.4334 Int32Array-alloc 3.1705+-0.3587 ? 3.4528+-0.4989 ? might be 1.0890x slower Int32Array-Int8Array-view-alloc 7.0433+-0.6846 ? 7.2664+-0.9452 ? might be 1.0317x slower int52-spill 6.4556+-0.3497 6.3528+-0.0827 might be 1.0162x faster Int8Array-alloc-long-lived 46.5347+-2.1107 45.5233+-1.8827 might be 1.0222x faster Int8Array-load-with-byteLength 3.3068+-0.0344 3.3063+-0.0499 Int8Array-load 3.2994+-0.0341 ? 3.4365+-0.1332 ? might be 1.0416x slower integer-divide 11.7507+-0.2107 11.7002+-0.2199 integer-modulo 2.0112+-0.1142 ? 2.0341+-0.2376 ? might be 1.0114x slower large-int-captured 7.5880+-2.3251 7.5860+-1.1380 large-int-neg 17.2301+-1.3705 17.0892+-0.6020 large-int 15.9727+-1.1895 15.3453+-0.4287 might be 1.0409x faster logical-not 4.5341+-0.0633 ? 4.5882+-0.0225 ? might be 1.0119x slower lots-of-fields 10.4685+-0.4544 10.1754+-0.9127 might be 1.0288x faster make-indexed-storage 2.8998+-0.1815 ? 2.9312+-0.3173 ? might be 1.0108x slower make-rope-cse 4.2317+-0.4311 ? 4.4452+-0.5021 ? might be 1.0504x slower marsaglia-larger-ints 39.3074+-1.4513 ? 40.5042+-1.7863 ? might be 1.0304x slower marsaglia-osr-entry 23.2778+-0.9720 23.1380+-1.5516 max-boolean 2.4907+-0.0229 ? 2.5090+-0.0349 ? method-on-number 17.3437+-0.9687 ? 17.9661+-2.0800 ? might be 1.0359x slower min-boolean 2.5390+-0.0973 ? 2.5396+-0.0908 ? minus-boolean-double 3.1490+-0.0499 3.1427+-0.0506 minus-boolean 2.3213+-0.0191 ? 2.3464+-0.0802 ? might be 1.0108x slower misc-strict-eq 37.5551+-0.9933 ? 37.9972+-0.8613 ? might be 1.0118x slower mod-boolean-double 11.4840+-0.7778 11.0885+-0.2404 might be 1.0357x faster mod-boolean 7.8508+-0.0883 7.8348+-0.1187 mul-boolean-double 3.7596+-0.1519 ? 3.7598+-0.1750 ? mul-boolean 2.8548+-0.0688 ? 2.8892+-0.1166 ? might be 1.0121x slower neg-boolean 3.1613+-0.0477 3.1405+-0.0380 negative-zero-divide 0.3408+-0.0189 0.3299+-0.0114 might be 1.0331x faster negative-zero-modulo 0.3334+-0.0127 ? 0.3488+-0.0213 ? might be 1.0461x slower negative-zero-negate 0.3169+-0.0064 ? 0.3278+-0.0405 ? might be 1.0342x slower nested-function-parsing 23.5352+-0.1019 23.4799+-0.9589 new-array-buffer-dead 2.7483+-0.1310 2.6801+-0.0394 might be 1.0254x faster new-array-buffer-push 8.2676+-0.8416 7.6698+-0.8276 might be 1.0779x faster new-array-dead 12.1735+-0.3248 12.0669+-0.4827 new-array-push 5.4013+-0.1063 5.2916+-0.0714 might be 1.0207x faster number-test 2.9772+-0.0615 2.9765+-0.0559 object-closure-call 5.5044+-0.2078 ? 5.5243+-0.0994 ? object-test 3.0634+-0.1277 ? 3.0794+-0.0765 ? obvious-sink-pathology-taken 143.5330+-2.6452 143.0437+-3.2482 obvious-sink-pathology 138.1538+-3.4589 ? 141.8939+-3.4854 ? might be 1.0271x slower obviously-elidable-new-object 36.4009+-1.1042 34.4602+-1.2098 might be 1.0563x faster plus-boolean-arith 2.5179+-0.0634 2.4967+-0.0285 plus-boolean-double 3.1927+-0.0948 3.1597+-0.0352 might be 1.0105x faster plus-boolean 2.3813+-0.0353 2.3586+-0.0290 poly-chain-access-different-prototypes-simple 3.2906+-0.0517 3.2365+-0.0194 might be 1.0167x faster poly-chain-access-different-prototypes 2.5929+-0.2615 2.5549+-0.3371 might be 1.0149x faster poly-chain-access-simpler 3.3089+-0.0614 ? 3.3249+-0.0838 ? poly-chain-access 2.7039+-0.1782 2.5198+-0.2480 might be 1.0731x faster poly-stricteq 62.1642+-1.0595 61.3830+-3.6927 might be 1.0127x faster polymorphic-array-call 1.8458+-0.0217 ? 1.8738+-0.1097 ? might be 1.0151x slower polymorphic-get-by-id 3.0846+-0.0460 ? 3.1541+-0.0999 ? might be 1.0225x slower polymorphic-put-by-id 31.3785+-2.8477 30.3222+-1.6786 might be 1.0348x faster polymorphic-structure 16.0190+-1.5044 14.8763+-0.1985 might be 1.0768x faster polyvariant-monomorphic-get-by-id 8.4245+-0.0449 ? 8.4300+-0.0834 ? proto-getter-access 9.6556+-0.1671 9.6091+-0.2301 put-by-id-replace-and-transition 8.5211+-0.2216 ? 8.7251+-0.3925 ? might be 1.0239x slower put-by-id-slightly-polymorphic 2.8475+-0.0471 2.8003+-0.0350 might be 1.0169x faster put-by-id 12.9555+-0.4101 ? 13.0852+-0.7559 ? might be 1.0100x slower put-by-val-direct 0.5490+-0.0293 0.5399+-0.0260 might be 1.0167x faster put-by-val-large-index-blank-indexing-type 5.8709+-0.7326 ? 6.2231+-0.8885 ? might be 1.0600x slower put-by-val-machine-int 2.5232+-0.0126 ? 2.5819+-0.1383 ? might be 1.0233x slower rare-osr-exit-on-local 14.8328+-0.3666 14.7714+-0.2581 register-pressure-from-osr 22.7411+-1.3536 22.1397+-0.6402 might be 1.0272x faster setter 5.4062+-0.4073 5.2198+-0.2041 might be 1.0357x faster simple-activation-demo 26.8653+-1.9951 26.3792+-2.2680 might be 1.0184x faster simple-getter-access 12.4102+-0.2023 ? 12.7237+-0.3486 ? might be 1.0253x slower simple-poly-call-nested 8.0687+-0.1532 ? 8.2702+-0.3396 ? might be 1.0250x slower simple-poly-call 1.2332+-0.0905 ? 1.2427+-0.0739 ? sin-boolean 21.9297+-2.6684 ? 23.2614+-3.2645 ? might be 1.0607x slower sinkable-new-object-dag 69.7868+-2.5697 68.2832+-1.5299 might be 1.0220x faster sinkable-new-object-taken 51.3703+-2.9684 ? 54.8672+-11.2974 ? might be 1.0681x slower sinkable-new-object 38.0990+-1.3234 37.8446+-1.0050 slow-array-profile-convergence 2.8228+-0.2243 2.7380+-0.0521 might be 1.0310x faster slow-convergence 3.2226+-0.1327 3.1775+-0.0555 might be 1.0142x faster sparse-conditional 1.0735+-0.0129 ? 1.1053+-0.0450 ? might be 1.0296x slower splice-to-remove 18.4343+-1.1731 18.2231+-1.3219 might be 1.0116x faster string-char-code-at 17.2371+-1.2694 ? 17.4187+-1.5697 ? might be 1.0105x slower string-concat-object 2.4487+-0.3330 2.3981+-0.5376 might be 1.0211x faster string-concat-pair-object 2.4323+-0.4084 2.2473+-0.3172 might be 1.0823x faster string-concat-pair-simple 11.5662+-2.4361 10.9451+-1.1738 might be 1.0567x faster string-concat-simple 11.5237+-0.9203 11.1984+-1.1504 might be 1.0290x faster string-cons-repeat 7.4022+-0.5285 ? 8.1506+-1.1613 ? might be 1.1011x slower string-cons-tower 7.5127+-0.4463 7.4622+-0.8353 string-equality 21.0863+-3.3804 19.1524+-1.9284 might be 1.1010x faster string-get-by-val-big-char 6.8618+-0.0341 ? 7.9143+-2.3952 ? might be 1.1534x slower string-get-by-val-out-of-bounds-insane 4.5302+-1.5902 3.7760+-0.0904 might be 1.1998x faster string-get-by-val-out-of-bounds 5.1728+-0.0918 ? 5.2310+-0.0974 ? might be 1.0113x slower string-get-by-val 3.1812+-0.0686 3.1576+-0.0323 string-hash 2.0377+-0.0781 2.0217+-0.0260 string-long-ident-equality 15.4439+-0.9705 ? 15.5222+-0.8648 ? string-repeat-arith 33.8103+-2.0808 ? 34.3999+-1.8125 ? might be 1.0174x slower string-sub 70.6002+-2.7559 67.9901+-2.0423 might be 1.0384x faster string-test 2.9440+-0.1276 2.9291+-0.1129 string-var-equality 32.8765+-2.1384 32.8169+-2.6278 structure-hoist-over-transitions 2.3757+-0.0726 2.3644+-0.0328 substring-concat-weird 41.3951+-1.6361 40.6172+-1.3000 might be 1.0192x faster substring-concat 41.9649+-1.8279 ? 42.6056+-2.1366 ? might be 1.0153x slower substring 46.5783+-2.2780 ? 47.5019+-2.0320 ? might be 1.0198x slower switch-char-constant 2.6879+-0.0301 ? 2.8632+-0.4446 ? might be 1.0652x slower switch-char 7.0628+-0.7787 6.9147+-0.6594 might be 1.0214x faster switch-constant 9.9967+-0.2589 9.6079+-0.8337 might be 1.0405x faster switch-string-basic-big-var 16.4856+-1.4392 ? 16.5869+-1.1903 ? switch-string-basic-big 16.6488+-1.0362 14.7524+-1.5907 might be 1.1285x faster switch-string-basic-var 15.2552+-1.0387 ? 15.6516+-1.5815 ? might be 1.0260x slower switch-string-basic 15.6749+-1.6268 15.3260+-1.3779 might be 1.0228x faster switch-string-big-length-tower-var 21.1968+-1.4002 20.3350+-1.4833 might be 1.0424x faster switch-string-length-tower-var 15.6240+-1.4799 14.9983+-0.5767 might be 1.0417x faster switch-string-length-tower 13.0468+-1.1253 ? 14.1802+-1.6277 ? might be 1.0869x slower switch-string-short 14.1847+-1.9313 12.4224+-0.0933 might be 1.1419x faster switch 14.3986+-1.7643 11.9808+-1.9113 might be 1.2018x faster tear-off-arguments-simple 1.8053+-0.0314 ? 1.8132+-0.0251 ? tear-off-arguments 2.6222+-0.0492 ? 2.9440+-0.7427 ? might be 1.1227x slower temporal-structure 12.7605+-1.5458 12.4714+-0.8558 might be 1.0232x faster to-int32-boolean 13.9764+-0.6531 13.9762+-1.0175 undefined-property-access 399.4307+-6.0751 395.6478+-8.7134 undefined-test 3.0486+-0.1243 3.0361+-0.1414 unprofiled-licm 22.8896+-0.7671 ? 24.1981+-2.2013 ? might be 1.0572x slower weird-inlining-const-prop 2.1449+-0.1418 2.0306+-0.0915 might be 1.0563x faster <arithmetic> 21.6450+-0.2338 ^ 20.6024+-0.0993 ^ definitely 1.0506x faster <geometric> * 8.2254+-0.0310 8.1837+-0.0384 might be 1.0051x faster <harmonic> 4.0410+-0.0231 4.0312+-0.0445 might be 1.0024x faster TipOfTree Varargs AsmBench: bigfib.cpp 509.9665+-3.4647 508.5284+-4.5365 cray.c 462.3071+-15.9530 455.0837+-4.8121 might be 1.0159x faster dry.c 522.3138+-8.9570 519.0764+-11.7603 FloatMM.c 759.7880+-14.7970 754.8067+-8.4566 gcc-loops.cpp 4350.9079+-27.7889 4349.3158+-17.0638 n-body.c 1044.2198+-7.0197 1029.9733+-18.1867 might be 1.0138x faster Quicksort.c 465.0140+-6.2040 461.1965+-10.5657 stepanov_container.cpp 3703.3679+-37.8267 3690.2519+-27.8405 Towers.c 272.8492+-6.6793 271.8270+-7.0600 <arithmetic> 1343.4149+-6.5278 1337.7844+-6.8570 might be 1.0042x faster <geometric> * 836.0450+-6.1720 830.4153+-6.7441 might be 1.0068x faster <harmonic> 615.1226+-6.4918 610.7100+-6.4641 might be 1.0072x faster TipOfTree Varargs CompressionBench: huffman 523.4119+-14.7566 ? 533.9702+-6.5180 ? might be 1.0202x slower arithmetic-simple 438.0364+-10.2581 435.5862+-10.6094 arithmetic-precise 329.2513+-6.3226 ? 335.0275+-5.9349 ? might be 1.0175x slower arithmetic-complex-precise 329.5603+-10.3139 ? 344.8861+-56.4117 ? might be 1.0465x slower arithmetic-precise-order-0 471.9719+-9.3184 ? 473.6711+-10.0789 ? arithmetic-precise-order-1 377.0987+-5.4909 ? 405.3004+-77.1429 ? might be 1.0748x slower arithmetic-precise-order-2 412.9557+-6.1838 409.1986+-10.6570 arithmetic-simple-order-1 465.3090+-6.0304 ? 467.9609+-6.0845 ? arithmetic-simple-order-2 515.0670+-9.5275 509.0608+-10.1933 might be 1.0118x faster lz-string 351.5260+-3.4569 ? 363.1371+-9.3085 ? might be 1.0330x slower <arithmetic> 421.4188+-3.2817 ? 427.7799+-8.9411 ? might be 1.0151x slower <geometric> * 415.6298+-3.0339 ? 421.9763+-8.8476 ? might be 1.0153x slower <harmonic> 409.8505+-2.9327 ? 416.1544+-8.8038 ? might be 1.0154x slower TipOfTree Varargs All benchmarks: <arithmetic> 105.0415+-0.4271 104.2315+-0.4958 might be 1.0078x faster <geometric> 13.6197+-0.0349 13.5614+-0.0464 might be 1.0043x faster <harmonic> 3.4227+-0.0150 3.4201+-0.0182 might be 1.0008x faster TipOfTree Varargs Geomean of preferred means: <scaled-result> 66.5657+-0.2350 66.4780+-0.3541 might be 1.0013x faster
Filip Pizlo
Comment 24 2015-02-16 20:49:09 PST
Created attachment 246722 [details] towards 32-bit support Implemented 32-bit support, but it's still failing a lot of tests.
Filip Pizlo
Comment 25 2015-02-16 21:15:51 PST
Created attachment 246724 [details] x86 32-bit and 64-bit pass all tests I still have to do minor tweaks for ARM, but it's ready for review.
WebKit Commit Bot
Comment 26 2015-02-16 21:18:10 PST
Attachment 246724 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:689: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:674: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:1417: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:1426: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] ERROR: Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:1439: An else statement can be removed when the prior "if" concludes with a return, break, continue or goto statement. [readability/control_flow] [4] ERROR: Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:1526: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGGraph.cpp:1254: Multi line control clauses should use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGGraph.cpp:1271: Multi line control clauses should use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/CallLinkStatus.cpp:298: Missing space before { [whitespace/braces] [5] ERROR: Source/JavaScriptCore/jit/JITCall.cpp:191: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] ERROR: Source/JavaScriptCore/ftl/FTLJSCallVarargs.cpp:54: Comma should be at the beginning of the line in a member initialization list. [whitespace/init] [4] ERROR: Source/JavaScriptCore/ftl/FTLJSCallVarargs.cpp:123: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLJSCallVarargs.cpp:134: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLJSCallVarargs.cpp:142: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:475: The parameter name "node" adds no information, so it should be removed. [readability/parameter_name] [5] ERROR: Source/JavaScriptCore/dfg/DFGGraph.h:476: The parameter name "node" adds no information, so it should be removed. [readability/parameter_name] [5] Total errors found: 16 in 88 files If any of these errors are false positives, please file a bug against check-webkit-style.
Oliver Hunt
Comment 27 2015-02-17 08:46:47 PST
Comment on attachment 246724 [details] x86 32-bit and 64-bit pass all tests y u so big :-/ r=me
Csaba Osztrogonác
Comment 28 2015-02-17 09:26:52 PST
I tested the latest patch and it doesn't build on ARMv7 Linux. Could you possibly give us a little bit time (max a day) to fix before landing?
Csaba Osztrogonác
Comment 29 2015-02-17 09:30:49 PST
(In reply to comment #28) > I tested the latest patch and it doesn't build on ARMv7 Linux. Could you > possibly give us a little bit time (max a day) to fix before landing? At least helpers are missing from Source/JavaScriptCore/jit/CCallHelpers.h, I don't know if there is any issue later, but I'm on it.
Csaba Osztrogonác
Comment 30 2015-02-17 10:20:33 PST
I fixed the ARM Linux build in bug141714, please review and land it before landing this patch. Thanks. Additionally I started JSC tests, it is still running, but no regression at 10% .
Filip Pizlo
Comment 31 2015-02-17 10:36:07 PST
(In reply to comment #28) > I tested the latest patch and it doesn't build on ARMv7 Linux. Could you > possibly give us a little bit time (max a day) to fix before landing? In the past, the way we worked this out was that I CC'd you on the bug before landing and then you would fix after. Are you proposing a change to this?
Csaba Osztrogonác
Comment 32 2015-02-17 10:38:17 PST
(In reply to comment #31) > (In reply to comment #28) > > I tested the latest patch and it doesn't build on ARMv7 Linux. Could you > > possibly give us a little bit time (max a day) to fix before landing? > > In the past, the way we worked this out was that I CC'd you on the bug > before landing and then you would fix after. > > Are you proposing a change to this? Nope, I thought it is a bigger change, but I already fixed it. ;)
Csaba Osztrogonác
Comment 33 2015-02-17 10:42:26 PST
I noticed it wasn't ARM Linux specific build issue, it was exactly same as the iOS EWS noticed.
Filip Pizlo
Comment 34 2015-02-17 11:10:22 PST
Created attachment 246757 [details] closer to landing Fixed some debug asserts and crashes. Still need to deal with some ARMs.
WebKit Commit Bot
Comment 35 2015-02-17 11:12:53 PST
Attachment 246757 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:689: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:674: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:1417: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:1526: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGGraph.cpp:1254: Multi line control clauses should use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGGraph.cpp:1271: Multi line control clauses should use braces. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/bytecode/CallLinkStatus.cpp:298: Missing space before { [whitespace/braces] [5] ERROR: Source/JavaScriptCore/ftl/FTLJSCallVarargs.cpp:54: Comma should be at the beginning of the line in a member initialization list. [whitespace/init] [4] ERROR: Source/JavaScriptCore/ftl/FTLJSCallVarargs.cpp:123: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLJSCallVarargs.cpp:134: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/ftl/FTLJSCallVarargs.cpp:142: Place brace on its own line for function definitions. [whitespace/braces] [4] Total errors found: 11 in 94 files If any of these errors are false positives, please file a bug against check-webkit-style.
Filip Pizlo
Comment 36 2015-02-18 09:06:36 PST
Created attachment 246819 [details] ARM64 works
Filip Pizlo
Comment 37 2015-02-18 11:57:08 PST
Note You need to log in before you can comment on or make changes to this bug.