WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
Bug 141332
DFG should really support varargs
https://bugs.webkit.org/show_bug.cgi?id=141332
Summary
DFG should really support varargs
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
Details
Formatted Diff
Diff
slowly coming along
(38.77 KB, patch)
2015-02-07 11:56 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
more things
(57.28 KB, patch)
2015-02-07 16:24 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
even more
(68.33 KB, patch)
2015-02-10 14:59 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
DFG 64-bit CallVarargs done
(72.58 KB, patch)
2015-02-10 15:45 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
DFG LoadVarargs 64-bit done
(79.00 KB, patch)
2015-02-10 16:48 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
OMG so much code
(101.27 KB, patch)
2015-02-11 15:04 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
more
(110.88 KB, patch)
2015-02-11 15:59 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
64-bit might be done
(117.48 KB, patch)
2015-02-11 20:59 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
starting to compile, and reworking CallForwardVarargs in FTL
(128.91 KB, patch)
2015-02-12 10:19 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
almost compiling
(135.52 KB, patch)
2015-02-13 12:43 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
it compiles!
(147.48 KB, patch)
2015-02-13 14:17 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
it passes some of our tests!
(150.96 KB, patch)
2015-02-13 17:36 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
now passes more tests than ever!
(173.22 KB, patch)
2015-02-13 22:04 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
it's passing so many tests
(173.50 KB, patch)
2015-02-14 10:11 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
almost passing all tests
(183.33 KB, patch)
2015-02-15 18:08 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
more FTL fixes
(188.44 KB, patch)
2015-02-16 12:58 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
more fixes, more tests
(200.05 KB, patch)
2015-02-16 13:54 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
64-bit tests pass
(232.43 KB, patch)
2015-02-16 17:06 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
towards 32-bit support
(278.34 KB, patch)
2015-02-16 20:49 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
x86 32-bit and 64-bit pass all tests
(285.12 KB, patch)
2015-02-16 21:15 PST
,
Filip Pizlo
oliver
: review+
Details
Formatted Diff
Diff
closer to landing
(291.98 KB, patch)
2015-02-17 11:10 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
ARM64 works
(292.84 KB, patch)
2015-02-18 09:06 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
Show Obsolete
(22)
View All
Add attachment
proposed patch, testcase, etc.
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
Landed in
http://trac.webkit.org/changeset/180279
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug