WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
139398
Crash in JSC::FTL::LowerDFGToLLVM::compileCompareStrictEq
https://bugs.webkit.org/show_bug.cgi?id=139398
Summary
Crash in JSC::FTL::LowerDFGToLLVM::compileCompareStrictEq
Vanessa Freudenberg
Reported
2014-12-08 07:29:15 PST
Safari (and WebKit nightly) crashes reproducibly after a couple of seconds running this (which works fine in Chrome and Firefox):
http://bertfreudenberg.github.io/SqueakJS/etoys/
It's not trivial to isolate the problem. This is a full Smalltalk Virtual Machine with its own JIT and memory management, but if I can be of any help: I am the main developer. Thread 22 Crashed:: FTL Worklist Worker Thread 0 com.apple.JavaScriptCore 0x000000011237e30e WTFCrashWithSecurityImplication + 62 1 com.apple.JavaScriptCore 0x0000000111f72212 JSC::DFG::crash(JSC::DFG::Graph&, WTF::CString const&, char const*, int, char const*, char const*) + 418 2 com.apple.JavaScriptCore 0x0000000111f722bf JSC::DFG::Graph::handleAssertionFailure(JSC::DFG::Node*, char const*, int, char const*, char const*) + 159 3 com.apple.JavaScriptCore 0x0000000112078c93 JSC::FTL::LowerDFGToLLVM::compileCompareStrictEq() + 3411 4 com.apple.JavaScriptCore 0x0000000112061247 JSC::FTL::LowerDFGToLLVM::compileNode(unsigned int) + 3351 5 com.apple.JavaScriptCore 0x0000000112060418 JSC::FTL::LowerDFGToLLVM::compileBlock(JSC::DFG::BasicBlock*) + 824 6 com.apple.JavaScriptCore 0x000000011205f8fb JSC::FTL::LowerDFGToLLVM::lower() + 3899 7 com.apple.JavaScriptCore 0x000000011205e999 JSC::FTL::lowerDFGToLLVM(JSC::FTL::State&) + 41
Attachments
Work in progress patch without test
(766 bytes, patch)
2015-02-06 18:31 PST
,
Michael Saboff
no flags
Details
Formatted Diff
Diff
Updated work in Progress
(9.69 KB, patch)
2015-02-09 18:28 PST
,
Michael Saboff
no flags
Details
Formatted Diff
Diff
Patch for Review
(2.59 KB, patch)
2015-02-10 13:08 PST
,
Michael Saboff
fpizlo
: review+
Details
Formatted Diff
Diff
Show Obsolete
(2)
View All
Add attachment
proposed patch, testcase, etc.
Alexey Proskuryakov
Comment 1
2014-12-09 00:06:02 PST
I could reproduce with Safari 8 (didn't try nightlies or trunk).
Radar WebKit Bug Importer
Comment 2
2014-12-09 00:06:17 PST
<
rdar://problem/19187718
>
Michael Saboff
Comment 3
2015-02-06 15:54:36 PST
Have a fix need to write a test.
Michael Saboff
Comment 4
2015-02-06 18:31:04 PST
Created
attachment 246196
[details]
Work in progress patch without test
Filip Pizlo
Comment 5
2015-02-09 10:07:53 PST
Comment on
attachment 246196
[details]
Work in progress patch without test View in context:
https://bugs.webkit.org/attachment.cgi?id=246196&action=review
> Source/JavaScriptCore/ftl/FTLLowerDFGToLLVM.cpp:3552 > + || m_node->isBinaryUseKind(UntypedUse)
This is wrong. The code below will not generate correct results for UntypedUse.
Michael Saboff
Comment 6
2015-02-09 10:41:20 PST
Here is the source for the function that is being compiled: function tallyIntoMapwith(sourceWord, destinationWord) { var pixMask; var mapIndex; var destShifted; var i; var maskShifted; var pixVal; if ((cmFlags & (ColorMapPresent | ColorMapIndexedPart)) !== (ColorMapPresent | ColorMapIndexedPart)) { return destinationWord; } pixMask = maskTable[destDepth]; destShifted = destinationWord; maskShifted = destMask; for (i = 1; i <= destPPW; i++) { if ((maskShifted & pixMask) !== 0) { /* Only tally pixels within the destination rectangle */ pixVal = destShifted & pixMask; if (destDepth < 16) { mapIndex = pixVal; } else { // Crashes checking the IR generated for the next statement if (destDepth === 16) { mapIndex = rgbMapfromto(pixVal, 5, cmBitsPerColor); } else { mapIndex = rgbMapfromto(pixVal, 8, cmBitsPerColor); } } tallyMapAtput(mapIndex, tallyMapAt(mapIndex) + 1); } maskShifted = SHR(maskShifted, destDepth); destShifted = SHR(destShifted, destDepth); } return destinationWord; }
Michael Saboff
Comment 7
2015-02-09 18:28:21 PST
Created
attachment 246308
[details]
Updated work in Progress
Michael Saboff
Comment 8
2015-02-10 07:39:54 PST
Tested performance with of adding the a FTL::canCompile() check to validate that the DFG graph is suitable for lowering to LLVM and got a huge slowdown. Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on msaboff-pro (MacPro5,1). VMs tested: "Baseline" at /Volumes/Data/src/webkit.baseline/WebKitBuild/Release/JavaScriptCore.framework/Versions/A/Resources/jsc "CheckFTLCapabilitesAgain" at /Volumes/Data/src/webkit/WebKitBuild/Release/JavaScriptCore.framework/Versions/A/Resources/jsc Collected 4 samples per benchmark/VM, with 4 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. Baseline CheckFTLCapabilitesAgain SunSpider: 3d-cube 8.4254+-0.2303 8.2947+-0.4883 might be 1.0158x faster 3d-morph 12.5574+-0.2270 ? 12.6633+-0.5515 ? 3d-raytrace 11.0907+-0.3086 10.8575+-0.3941 might be 1.0215x faster access-binary-trees 3.3362+-0.1887 3.3247+-0.2178 access-fannkuch 10.2742+-0.2233 ? 10.4454+-0.3724 ? might be 1.0167x slower access-nbody 5.3285+-0.1665 ? 5.3630+-0.2529 ? access-nsieve 5.8448+-0.0553 5.7865+-0.1660 might be 1.0101x faster bitops-3bit-bits-in-byte 2.3517+-0.1475 ? 2.4132+-0.1010 ? might be 1.0262x slower bitops-bits-in-byte 6.3422+-0.0406 ? 6.3508+-0.1032 ? bitops-bitwise-and 3.1060+-0.1512 ? 3.1929+-0.1980 ? might be 1.0280x slower bitops-nsieve-bits 6.7874+-0.2680 6.7325+-0.2410 controlflow-recursive 3.6476+-0.2466 3.4430+-0.1825 might be 1.0594x faster crypto-aes 7.0080+-0.2997 ? 7.1836+-0.2734 ? might be 1.0251x slower crypto-md5 4.2530+-0.2816 4.2493+-0.3246 crypto-sha1 4.2775+-0.3129 ? 4.2863+-0.3765 ? date-format-tofte 17.0318+-0.7223 16.5503+-0.5088 might be 1.0291x faster date-format-xparb 8.8958+-0.4373 ? 8.9974+-0.4338 ? might be 1.0114x slower math-cordic 5.5435+-0.2909 ? 5.5732+-0.2498 ? math-partial-sums 10.9012+-0.1222 ? 11.0506+-0.1198 ? might be 1.0137x slower math-spectral-norm 3.5137+-0.1778 3.4557+-0.2000 might be 1.0168x faster regexp-dna 11.4762+-0.2570 ? 11.6005+-0.1091 ? might be 1.0108x slower string-base64 7.1635+-0.3972 ? 7.2466+-0.2875 ? might be 1.0116x slower string-fasta 12.1312+-0.3163 12.0148+-0.2926 string-tagcloud 17.8674+-0.3081 17.2139+-0.5594 might be 1.0380x faster string-unpack-code 37.7999+-1.1774 ? 38.5540+-1.0918 ? might be 1.0199x slower string-validate-input 8.3782+-0.3113 8.1863+-0.4700 might be 1.0234x faster <arithmetic> * 9.0513+-0.0522 9.0396+-0.1029 might be 1.0013x faster <geometric> 7.3470+-0.0350 7.3334+-0.0974 might be 1.0018x faster <harmonic> 6.1554+-0.0667 6.1513+-0.1069 might be 1.0007x faster Baseline CheckFTLCapabilitesAgain LongSpider: 3d-cube 1684.4370+-366.0668 ! 2379.1963+-9.0939 ! definitely 1.4125x slower 3d-morph 1978.3196+-3.0337 ! 2189.1918+-3.8531 ! definitely 1.1066x slower 3d-raytrace 1542.9747+-3.8720 ^ 1525.5170+-7.5645 ^ definitely 1.0114x faster access-binary-trees 1859.5215+-5.2750 ^ 1797.2401+-1.6667 ^ definitely 1.0347x faster access-fannkuch 591.7411+-28.0623 ! 733.6613+-8.7177 ! definitely 1.2398x slower access-nbody 1479.0960+-1.7625 ! 1837.4803+-1.8035 ! definitely 1.2423x slower access-nsieve 1804.3760+-9.1209 1800.7350+-20.1102 bitops-3bit-bits-in-byte 70.3105+-0.2038 ! 135.6770+-0.8051 ! definitely 1.9297x slower bitops-bits-in-byte 364.0190+-5.1025 ! 549.7675+-0.1606 ! definitely 1.5103x slower bitops-nsieve-bits 1454.5776+-4.7530 ^ 1328.5969+-2.7677 ^ definitely 1.0948x faster controlflow-recursive 1089.2863+-6.4276 ^ 925.0367+-2.4511 ^ definitely 1.1776x faster crypto-aes 1290.7263+-3.5353 ! 1949.4685+-12.6533 ! definitely 1.5104x slower crypto-md5 1070.2658+-5.3137 ! 1281.9777+-13.4215 ! definitely 1.1978x slower crypto-sha1 1449.4285+-9.4458 ! 1906.0695+-7.5645 ! definitely 1.3150x slower date-format-tofte 1507.5335+-68.9748 ! 1601.1042+-9.8061 ! definitely 1.0621x slower date-format-xparb 1403.2462+-68.1595 1378.9893+-26.0171 might be 1.0176x faster math-cordic 1049.3808+-8.0381 ! 2001.6452+-5.9398 ! definitely 1.9075x slower math-partial-sums 1278.9943+-2.5430 ! 1312.8829+-2.2899 ! definitely 1.0265x slower math-spectral-norm 1217.8057+-1.6660 ! 2113.2379+-3.1426 ! definitely 1.7353x slower string-base64 631.4800+-1.8253 ^ 623.7205+-3.5519 ^ definitely 1.0124x faster string-fasta 860.3738+-11.4774 ! 995.1693+-3.4808 ! definitely 1.1567x slower string-tagcloud 420.2945+-5.2666 ? 424.2668+-6.7480 ? <arithmetic> 1186.2813+-20.6741 ! 1399.5742+-0.9272 ! definitely 1.1798x slower <geometric> * 998.2024+-11.7829 ! 1193.3721+-1.5206 ! definitely 1.1955x slower <harmonic> 624.1823+-3.3413 ! 864.7079+-2.7638 ! definitely 1.3853x slower Baseline CheckFTLCapabilitesAgain V8Spider: crypto 100.4189+-1.2812 ? 100.8250+-1.0864 ? deltablue 124.8494+-11.2373 ? 126.9690+-1.8237 ? might be 1.0170x slower earley-boyer 81.0970+-2.7328 ? 81.7010+-0.6636 ? raytrace 49.1834+-2.8370 ? 50.7105+-2.8897 ? might be 1.0310x slower regexp 128.6553+-1.9744 127.4943+-1.8847 richards 132.0338+-3.9614 ! 141.1838+-3.6683 ! definitely 1.0693x slower splay 58.8062+-2.4803 ? 59.0485+-3.7745 ? <arithmetic> 96.4349+-1.5936 ? 98.2760+-0.8584 ? might be 1.0191x slower <geometric> * 90.5335+-1.5304 ? 92.1233+-1.0666 ? might be 1.0176x slower <harmonic> 84.3103+-1.8796 ? 85.7321+-1.5327 ? might be 1.0169x slower Baseline CheckFTLCapabilitesAgain Octane: encrypt 0.45952+-0.01251 ! 0.58129+-0.00736 ! definitely 1.2650x slower decrypt 8.25512+-0.12867 ! 10.52647+-0.03494 ! definitely 1.2751x slower deltablue x2 0.38899+-0.00336 ! 0.66973+-0.01270 ! definitely 1.7217x slower earley 1.32078+-0.01135 ? 1.32944+-0.01362 ? boyer 11.85747+-0.09610 ! 14.12994+-0.13250 ! definitely 1.1916x slower navier-stokes x2 7.39018+-0.02564 ! 11.46404+-0.05493 ! definitely 1.5513x slower raytrace x2 2.51232+-0.21192 ! 5.01789+-0.38755 ! definitely 1.9973x slower richards x2 0.24088+-0.00288 ! 0.37012+-0.00096 ! definitely 1.5365x slower splay x2 0.66895+-0.00390 ! 0.82139+-0.10543 ! definitely 1.2279x slower regexp x2 62.96479+-1.59686 62.76995+-0.86524 pdfjs x2 96.49107+-0.59789 ? 96.60619+-0.85911 ? mandreel x2 107.02375+-0.73439 ! 170.95224+-0.96348 ! definitely 1.5973x slower gbemu x2 96.66876+-4.03324 ! 102.54764+-1.25550 ! definitely 1.0608x slower closure 0.96826+-0.00344 ? 0.97132+-0.00897 ? jquery 12.31582+-0.03684 12.29063+-0.11049 box2d x2 28.08956+-0.28453 ! 29.98011+-0.09508 ! definitely 1.0673x slower zlib x2 888.53666+-2.12592 ! 1098.63363+-3.57671 ! definitely 1.2365x slower typescript x2 1453.91418+-47.57047 1399.21326+-27.99842 might be 1.0391x faster <arithmetic> 184.16524+-3.08111 ! 199.93071+-1.81436 ! definitely 1.0856x slower <geometric> * 13.28100+-0.10741 ! 16.66220+-0.12331 ! definitely 1.2546x slower <harmonic> 1.36844+-0.00310 ! 1.95929+-0.04402 ! definitely 1.4318x slower Baseline CheckFTLCapabilitesAgain Kraken: ai-astar 819.725+-28.565 794.124+-29.497 might be 1.0322x faster audio-beat-detection 220.882+-0.994 ! 224.379+-0.295 ! definitely 1.0158x slower audio-dft 301.660+-36.392 291.005+-1.251 might be 1.0366x faster audio-fft 155.742+-1.005 154.937+-1.268 audio-oscillator 427.917+-2.562 ^ 274.321+-1.218 ^ definitely 1.5599x faster imaging-darkroom 335.383+-1.813 ^ 331.140+-0.757 ^ definitely 1.0128x faster imaging-desaturate 145.258+-0.255 ! 212.677+-0.465 ! definitely 1.4641x slower imaging-gaussian-blur 216.181+-1.743 ! 387.265+-1.061 ! definitely 1.7914x slower json-parse-financial 92.461+-0.793 ? 93.396+-2.274 ? might be 1.0101x slower json-stringify-tinderbox 113.586+-5.365 112.786+-1.501 stanford-crypto-aes 116.779+-2.412 ? 117.935+-1.778 ? stanford-crypto-ccm 111.485+-3.146 ^ 93.090+-2.939 ^ definitely 1.1976x faster stanford-crypto-pbkdf2 313.339+-2.938 ^ 264.435+-5.494 ^ definitely 1.1849x faster stanford-crypto-sha256-iterative 95.082+-1.401 ! 97.102+-0.552 ! definitely 1.0212x slower <arithmetic> * 247.534+-4.298 246.328+-1.970 might be 1.0049x faster <geometric> 199.280+-2.395 ? 201.219+-0.919 ? might be 1.0097x slower <harmonic> 168.280+-1.318 ? 169.825+-0.949 ? might be 1.0092x slower Baseline CheckFTLCapabilitesAgain JSRegress: abs-boolean 4.6240+-0.1165 ? 4.6695+-0.1843 ? adapt-to-double-divide 19.3786+-0.3969 ! 20.3898+-0.3619 ! definitely 1.0522x slower aliased-arguments-getbyval 1.4614+-0.1168 1.4613+-0.1833 allocate-big-object 3.5966+-0.2758 ? 3.5994+-0.1604 ? arity-mismatch-inlining 1.3419+-0.2591 1.3115+-0.0532 might be 1.0231x faster array-access-polymorphic-structure 12.5099+-0.1738 12.4674+-0.2858 array-nonarray-polymorhpic-access 69.0966+-0.6658 ? 69.5461+-8.2680 ? array-prototype-every 188.6152+-5.4459 186.7556+-8.4325 array-prototype-forEach 186.2267+-15.3484 ? 189.5630+-10.3126 ? might be 1.0179x slower array-prototype-map 223.6080+-5.1404 220.3545+-4.3256 might be 1.0148x faster array-prototype-some 197.2348+-13.7463 192.0667+-8.1613 might be 1.0269x faster array-splice-contiguous 89.5582+-4.6993 ? 90.2499+-4.8957 ? array-with-double-add 7.4485+-0.1674 7.4044+-0.0914 array-with-double-increment 5.5300+-0.1445 ? 5.5310+-0.1298 ? array-with-double-mul-add 11.6240+-0.1131 11.5105+-0.1456 array-with-double-sum 5.3740+-0.1061 ? 5.4253+-0.1557 ? array-with-int32-add-sub 13.1236+-0.2279 12.8990+-0.2262 might be 1.0174x faster array-with-int32-or-double-sum 5.2505+-0.1243 ? 5.3434+-0.0824 ? might be 1.0177x slower ArrayBuffer-DataView-alloc-large-long-lived 65.4079+-2.6091 64.4221+-0.6485 might be 1.0153x faster ArrayBuffer-DataView-alloc-long-lived 27.1077+-1.3025 26.2334+-0.3690 might be 1.0333x faster ArrayBuffer-Int32Array-byteOffset 5.3918+-0.2344 5.1122+-0.3690 might be 1.0547x faster ArrayBuffer-Int8Array-alloc-large-long-lived 68.6993+-1.3282 ? 70.6108+-3.7409 ? might be 1.0278x slower ArrayBuffer-Int8Array-alloc-long-lived-buffer 43.7990+-1.3709 ? 44.3135+-1.4476 ? might be 1.0117x slower ArrayBuffer-Int8Array-alloc-long-lived 25.3255+-0.8341 ? 27.1045+-2.7248 ? might be 1.0702x slower ArrayBuffer-Int8Array-alloc 21.4498+-0.9400 ? 21.6425+-1.0428 ? asmjs_bool_bug 12.7160+-0.2284 12.6465+-0.2307 assign-custom-setter-polymorphic 6.0016+-0.1905 ? 6.0761+-0.1493 ? might be 1.0124x slower assign-custom-setter 8.2315+-0.1746 ? 8.3250+-0.0711 ? might be 1.0114x slower basic-set 18.0435+-1.5026 16.8120+-1.2060 might be 1.0733x faster big-int-mul 7.7390+-0.0810 ? 7.7891+-0.2318 ? boolean-test 4.8981+-0.2104 4.7920+-0.0972 might be 1.0221x faster branch-fold 5.2663+-0.1577 ? 5.3416+-0.1572 ? might be 1.0143x slower by-val-generic 15.3765+-0.3021 15.3273+-0.6053 call-spread-apply 26.7298+-0.2589 ^ 26.0934+-0.2417 ^ definitely 1.0244x faster call-spread-call 11.5486+-0.2806 11.2810+-0.2555 might be 1.0237x faster captured-assignments 0.8494+-0.2058 0.8127+-0.1360 might be 1.0451x faster cast-int-to-double 8.6546+-0.1895 8.5427+-0.0844 might be 1.0131x faster cell-argument 12.1551+-0.1365 ! 15.7473+-0.1257 ! definitely 1.2955x slower cfg-simplify 3.9940+-0.1929 ? 4.0381+-0.1133 ? might be 1.0110x slower chain-getter-access 16.7128+-0.4791 ! 22.1323+-0.2905 ! definitely 1.3243x slower cmpeq-obj-to-obj-other 16.3000+-0.4354 ? 16.9847+-0.7668 ? might be 1.0420x slower constant-test 8.0817+-0.1085 7.9722+-0.2230 might be 1.0137x faster DataView-custom-properties 73.4356+-1.2568 ? 73.7570+-2.8189 ? delay-tear-off-arguments-strictmode 44.0186+-0.5679 43.8254+-2.2986 destructuring-arguments 9.1373+-0.1351 9.0717+-0.2135 destructuring-swap 8.1918+-0.1754 ? 8.2317+-0.2375 ? direct-arguments-getbyval 1.5794+-0.2850 1.5415+-0.1012 might be 1.0246x faster div-boolean-double 5.9225+-0.2271 5.7382+-0.2442 might be 1.0321x faster div-boolean 10.1893+-0.1093 10.1876+-0.1200 double-get-by-val-out-of-bounds 7.9057+-0.3169 7.7896+-0.2344 might be 1.0149x faster double-pollution-getbyval 10.2017+-0.2023 10.0055+-0.2051 might be 1.0196x faster double-pollution-putbyoffset 7.9363+-0.1543 7.8453+-0.1986 might be 1.0116x faster double-to-int32-typed-array-no-inline 3.6616+-0.1544 ? 3.7155+-0.3031 ? might be 1.0147x slower double-to-int32-typed-array 3.1696+-0.1668 ? 3.1974+-0.2120 ? double-to-uint32-typed-array-no-inline 3.7192+-0.1000 ? 3.7934+-0.1485 ? might be 1.0199x slower double-to-uint32-typed-array 3.3278+-0.2488 3.2569+-0.0613 might be 1.0218x faster elidable-new-object-dag 63.1037+-0.7777 ! 396.1140+-6.2530 ! definitely 6.2772x slower elidable-new-object-roflcopter 237.3107+-0.6990 237.0347+-0.9520 elidable-new-object-then-call 59.1095+-0.8220 ! 259.2364+-6.0201 ! definitely 4.3857x slower elidable-new-object-tree 69.5731+-1.3086 ! 393.7665+-4.8424 ! definitely 5.6598x slower empty-string-plus-int 10.3997+-0.1950 10.1263+-0.2315 might be 1.0270x faster emscripten-cube2hash 57.2567+-0.4616 ? 57.5522+-1.4530 ? external-arguments-getbyval 2.4247+-0.2277 ? 2.4348+-0.2186 ? external-arguments-putbyval 3.6743+-0.2111 ? 3.7758+-0.2266 ? might be 1.0276x slower fixed-typed-array-storage-var-index 1.8537+-0.0563 ! 2.0468+-0.1165 ! definitely 1.1041x slower fixed-typed-array-storage 1.4429+-0.0992 ? 1.5068+-0.1887 ? might be 1.0442x slower Float32Array-matrix-mult 8.3763+-0.5623 ? 8.8171+-1.5045 ? might be 1.0526x slower Float32Array-to-Float64Array-set 119.1960+-4.1940 116.5704+-1.0105 might be 1.0225x faster Float64Array-alloc-long-lived 103.5098+-0.7632 ? 103.9840+-1.4414 ? Float64Array-to-Int16Array-set 144.8483+-2.7642 144.8109+-4.4859 fold-double-to-int 23.7125+-0.4981 ! 34.6306+-1.0998 ! definitely 1.4604x slower fold-get-by-id-to-multi-get-by-offset-rare-int 14.5103+-0.8095 14.3445+-0.3931 might be 1.0116x faster fold-get-by-id-to-multi-get-by-offset 12.3757+-0.4647 ? 12.5439+-0.4257 ? might be 1.0136x slower fold-multi-get-by-offset-to-get-by-offset 10.7960+-1.7112 ? 10.8817+-2.1934 ? fold-multi-get-by-offset-to-poly-get-by-offset 10.9042+-1.0602 10.5978+-0.3201 might be 1.0289x faster fold-multi-put-by-offset-to-poly-put-by-offset 9.8348+-1.1391 ? 10.1268+-1.3330 ? might be 1.0297x slower fold-multi-put-by-offset-to-put-by-offset 8.8740+-1.1242 8.0186+-1.3234 might be 1.1067x faster fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 16.0674+-1.2591 15.4662+-2.5596 might be 1.0389x faster fold-put-by-id-to-multi-put-by-offset 11.4954+-0.7012 ? 11.6194+-1.4441 ? might be 1.0108x slower fold-put-structure 8.6396+-0.7585 ? 8.8072+-1.1558 ? might be 1.0194x slower for-of-iterate-array-entries 10.9670+-0.3609 10.8669+-0.3066 for-of-iterate-array-keys 5.0760+-0.1750 5.0153+-0.2392 might be 1.0121x faster for-of-iterate-array-values 4.0119+-0.3122 ? 4.4427+-0.2013 ? might be 1.1074x slower fround 25.6963+-0.2118 ! 26.9955+-0.1115 ! definitely 1.0506x slower ftl-library-inlining-dataview 155.8597+-22.1040 152.9064+-2.0952 might be 1.0193x faster ftl-library-inlining 135.4794+-7.6702 ! 145.0245+-0.2659 ! definitely 1.0705x slower function-dot-apply 2.8680+-0.1800 2.8400+-0.2309 function-test 5.5325+-0.2112 5.4984+-0.2358 function-with-eval 223.1771+-2.0292 219.8792+-24.2283 might be 1.0150x faster gcse-poly-get-less-obvious 36.9563+-0.6808 36.2575+-1.0252 might be 1.0193x faster gcse-poly-get 36.8305+-0.2743 36.8132+-1.0005 gcse 9.1937+-0.1077 9.0728+-0.2076 might be 1.0133x faster get-by-id-bimorphic-check-structure-elimination-simple 4.1334+-0.1258 4.0856+-0.1403 might be 1.0117x faster get-by-id-bimorphic-check-structure-elimination 12.1049+-0.0943 11.9789+-0.1516 might be 1.0105x faster get-by-id-chain-from-try-block 19.7538+-0.1189 19.6180+-0.1033 get-by-id-check-structure-elimination 10.7063+-0.4386 10.6670+-0.1560 get-by-id-proto-or-self 30.8511+-0.6974 ! 34.7138+-0.6516 ! definitely 1.1252x slower get-by-id-quadmorphic-check-structure-elimination-simple 5.2753+-0.1731 5.1339+-0.1196 might be 1.0275x faster get-by-id-self-or-proto 31.8908+-6.4890 ? 34.8402+-2.3304 ? might be 1.0925x slower get-by-val-out-of-bounds 7.5349+-0.2843 7.3873+-0.1681 might be 1.0200x faster get_callee_monomorphic 6.0526+-0.3895 ? 6.2784+-0.5388 ? might be 1.0373x slower get_callee_polymorphic 5.4689+-0.1834 5.2090+-0.2557 might be 1.0499x faster getter-no-activation 6.3060+-0.1271 ? 6.3098+-0.1127 ? getter-richards 179.2745+-3.6649 169.4739+-8.3713 might be 1.0578x faster getter 9.0842+-0.5308 8.8842+-0.3596 might be 1.0225x faster global-var-const-infer-fire-from-opt 1.8119+-0.1247 1.7501+-0.1884 might be 1.0353x faster global-var-const-infer 1.4200+-0.1673 ? 1.5260+-0.2394 ? might be 1.0746x slower HashMap-put-get-iterate-keys 50.5900+-0.5999 49.9011+-0.8957 might be 1.0138x faster HashMap-put-get-iterate 49.9439+-1.1221 48.5055+-0.3857 might be 1.0297x faster HashMap-string-put-get-iterate 49.7173+-1.1275 ? 50.7897+-1.2250 ? might be 1.0216x slower hoist-make-rope 16.7797+-2.4051 ! 96.5465+-0.6237 ! definitely 5.7538x slower hoist-poly-check-structure-effectful-loop 9.5635+-0.1147 ^ 9.3412+-0.1072 ^ definitely 1.0238x faster hoist-poly-check-structure 6.3197+-0.1809 6.1780+-0.2422 might be 1.0229x faster imul-double-only 13.4333+-1.8984 ! 21.2166+-0.1331 ! definitely 1.5794x slower imul-int-only 14.5253+-0.1249 14.4742+-0.1747 imul-mixed 12.6605+-1.6708 ! 26.9069+-0.2395 ! definitely 2.1253x slower in-four-cases 36.2841+-0.7934 35.1251+-0.7375 might be 1.0330x faster in-one-case-false 18.7558+-0.4603 18.2859+-0.1467 might be 1.0257x faster in-one-case-true 18.5046+-0.1471 18.3490+-0.3288 in-two-cases 19.3170+-0.1691 19.0038+-0.1558 might be 1.0165x faster indexed-properties-in-objects 4.6625+-0.1717 4.6201+-0.1983 infer-closure-const-then-mov-no-inline 6.0481+-0.0413 5.9131+-0.1266 might be 1.0228x faster infer-closure-const-then-mov 26.2275+-0.3431 26.0132+-0.1356 infer-closure-const-then-put-to-scope-no-inline 19.7618+-0.2721 ! 22.2540+-0.2305 ! definitely 1.1261x slower infer-closure-const-then-put-to-scope 33.7224+-1.1604 ? 34.5884+-0.7527 ? might be 1.0257x slower infer-closure-const-then-reenter-no-inline 92.8353+-0.1746 ! 106.8552+-0.2427 ! definitely 1.1510x slower infer-closure-const-then-reenter 31.6918+-0.2544 ? 36.6333+-15.7428 ? might be 1.1559x slower infer-constant-global-property 38.8754+-0.0466 ^ 38.6995+-0.1082 ^ definitely 1.0045x faster infer-constant-property 3.7210+-0.0641 3.5969+-0.0974 might be 1.0345x faster infer-one-time-closure-ten-vars 17.7138+-0.1977 ! 27.1662+-0.0665 ! definitely 1.5336x slower infer-one-time-closure-two-vars 16.9888+-0.8368 ! 26.8641+-0.2370 ! definitely 1.5813x slower infer-one-time-closure 16.7379+-0.5725 ! 27.8843+-3.9084 ! definitely 1.6659x slower infer-one-time-deep-closure 29.6984+-0.3056 ! 53.3060+-0.1967 ! definitely 1.7949x slower inline-arguments-access 2.8155+-0.1350 2.7695+-0.1123 might be 1.0166x faster inline-arguments-aliased-access 3.1365+-0.0726 3.0220+-0.1744 might be 1.0379x faster inline-arguments-local-escape 25.7418+-0.1349 25.7292+-0.7041 inline-get-scoped-var 5.8198+-0.1463 ? 5.9213+-0.1525 ? might be 1.0174x slower inlined-put-by-id-transition 16.8721+-1.7771 ? 18.0001+-1.6120 ? might be 1.0669x slower int-or-other-abs-then-get-by-val 9.5490+-0.0351 9.4943+-0.1991 int-or-other-abs-zero-then-get-by-val 34.0172+-0.2931 ? 34.1624+-0.8267 ? int-or-other-add-then-get-by-val 8.4006+-0.1908 8.3348+-0.1562 int-or-other-add 9.1472+-0.2646 8.9370+-0.1878 might be 1.0235x faster int-or-other-div-then-get-by-val 6.5130+-0.1475 ? 6.5466+-0.1541 ? int-or-other-max-then-get-by-val 7.9655+-0.1190 7.8763+-0.2495 might be 1.0113x faster int-or-other-min-then-get-by-val 7.2291+-0.0852 7.1592+-0.1205 int-or-other-mod-then-get-by-val 6.0799+-0.1594 ? 6.1268+-0.1704 ? int-or-other-mul-then-get-by-val 6.4827+-0.3017 6.4816+-0.2086 int-or-other-neg-then-get-by-val 8.0347+-0.1788 ? 8.0956+-0.1627 ? int-or-other-neg-zero-then-get-by-val 34.2698+-0.6073 34.1738+-0.4280 int-or-other-sub-then-get-by-val 8.7798+-0.3754 8.6645+-0.1254 might be 1.0133x faster int-or-other-sub 6.8898+-0.0309 6.8373+-0.2975 int-overflow-local 8.0093+-0.2453 7.8735+-0.2589 might be 1.0172x faster Int16Array-alloc-long-lived 76.9608+-1.0634 76.7668+-0.6921 Int16Array-bubble-sort-with-byteLength 51.9716+-1.1528 50.7997+-0.2815 might be 1.0231x faster Int16Array-bubble-sort 49.0795+-2.3672 ? 49.4153+-0.2929 ? Int16Array-load-int-mul 2.2545+-0.0352 ? 2.3665+-0.1657 ? might be 1.0497x slower Int16Array-to-Int32Array-set 115.0621+-2.7538 113.6673+-1.8571 might be 1.0123x faster Int32Array-alloc-large 38.2499+-2.0791 ? 38.7213+-1.3738 ? might be 1.0123x slower Int32Array-alloc-long-lived 83.4545+-0.1762 ? 84.2670+-0.9991 ? Int32Array-alloc 4.8250+-0.0842 ? 4.8977+-0.1246 ? might be 1.0151x slower Int32Array-Int8Array-view-alloc 12.5760+-0.5129 ? 12.5898+-0.4951 ? int52-spill 12.3936+-0.3048 ? 12.5532+-0.3837 ? might be 1.0129x slower Int8Array-alloc-long-lived 71.3570+-1.8304 71.0410+-1.1916 Int8Array-load-with-byteLength 5.1310+-0.1025 ? 5.2275+-0.1936 ? might be 1.0188x slower Int8Array-load 5.3022+-0.1295 5.1945+-0.1809 might be 1.0207x faster integer-divide 19.2576+-0.1415 ? 19.2896+-0.1823 ? integer-modulo 3.6686+-0.2285 ? 3.6914+-0.1971 ? large-int-captured 12.6235+-0.5776 12.4000+-0.1304 might be 1.0180x faster large-int-neg 30.3953+-0.4732 ! 36.6799+-0.1073 ! definitely 1.2068x slower large-int 27.6955+-0.6522 ! 33.9491+-0.1690 ! definitely 1.2258x slower logical-not 8.3284+-0.4757 7.9944+-0.1381 might be 1.0418x faster lots-of-fields 19.4020+-0.9630 ? 19.4133+-0.9242 ? make-indexed-storage 5.3406+-0.3512 5.1228+-0.6225 might be 1.0425x faster make-rope-cse 6.4365+-0.4104 ? 6.6588+-0.5304 ? might be 1.0345x slower marsaglia-larger-ints 68.9099+-0.9061 ! 121.5530+-0.3809 ! definitely 1.7639x slower marsaglia-osr-entry 34.9568+-1.0049 ! 59.0480+-0.7334 ! definitely 1.6892x slower max-boolean 4.0038+-0.0170 ^ 3.8951+-0.0801 ^ definitely 1.0279x faster method-on-number 34.2491+-1.1027 33.6317+-0.7463 might be 1.0184x faster min-boolean 3.8400+-0.1737 ? 3.8627+-0.1242 ? minus-boolean-double 4.4599+-0.1204 4.4465+-0.1406 minus-boolean 3.6945+-0.1564 3.6124+-0.0474 might be 1.0227x faster misc-strict-eq 71.1572+-2.3636 ! 104.2823+-1.1226 ! definitely 1.4655x slower mod-boolean-double 14.3255+-0.1245 14.2023+-0.1021 mod-boolean 9.1544+-0.2036 ? 9.1627+-0.2649 ? mul-boolean-double 4.9484+-0.0711 ? 5.0229+-0.1017 ? might be 1.0151x slower mul-boolean 4.0357+-0.0906 3.9935+-0.0778 might be 1.0106x faster neg-boolean 4.5553+-0.0352 ? 4.5628+-0.0856 ? negative-zero-divide 0.5441+-0.0411 ? 0.6057+-0.0983 ? might be 1.1132x slower negative-zero-modulo 0.5522+-0.0144 ? 0.5700+-0.0280 ? might be 1.0322x slower negative-zero-negate 0.5751+-0.0882 ? 0.6095+-0.1020 ? might be 1.0597x slower nested-function-parsing 41.3818+-1.5392 41.0739+-0.2268 new-array-buffer-dead 3.9998+-0.1372 ? 4.0690+-0.1849 ? might be 1.0173x slower new-array-buffer-push 10.6415+-0.2570 10.4905+-0.6459 might be 1.0144x faster new-array-dead 17.0543+-0.7157 ! 25.2828+-0.1657 ! definitely 1.4825x slower new-array-push 8.0736+-0.2456 7.5189+-0.3417 might be 1.0738x faster number-test 4.7886+-0.1771 ? 4.8571+-0.1646 ? might be 1.0143x slower object-closure-call 10.5224+-0.0792 10.4433+-0.2217 object-test 5.3250+-0.2935 5.3174+-0.1343 obvious-sink-pathology-taken 214.2635+-0.5744 ! 252.3495+-1.4259 ! definitely 1.1778x slower obvious-sink-pathology 199.7045+-3.3389 ! 224.1775+-1.8527 ! definitely 1.1225x slower obviously-elidable-new-object 53.3845+-4.6002 ! 200.5685+-1.9052 ! definitely 3.7571x slower plus-boolean-arith 4.0507+-0.1373 ? 4.0516+-0.1596 ? plus-boolean-double 4.6918+-0.7086 4.4555+-0.0604 might be 1.0530x faster plus-boolean 3.7067+-0.2186 3.6240+-0.0470 might be 1.0228x faster poly-chain-access-different-prototypes-simple 5.0992+-0.0941 5.0823+-0.0442 poly-chain-access-different-prototypes 3.6006+-0.1246 ? 3.6530+-0.1820 ? might be 1.0146x slower poly-chain-access-simpler 5.1478+-0.0630 ? 5.1702+-0.1423 ? poly-chain-access 3.5235+-0.1836 3.4802+-0.1359 might be 1.0124x faster poly-stricteq 100.5943+-1.4958 ? 101.7350+-2.4594 ? might be 1.0113x slower polymorphic-array-call 2.8863+-0.2757 ? 2.9764+-0.4590 ? might be 1.0312x slower polymorphic-get-by-id 5.4058+-0.6572 5.2473+-0.1539 might be 1.0302x faster polymorphic-put-by-id 45.8995+-2.7530 ! 59.6768+-2.3528 ! definitely 1.3002x slower polymorphic-structure 32.9184+-0.5850 32.7490+-0.7483 polyvariant-monomorphic-get-by-id 16.8973+-0.1670 ^ 16.3267+-0.2350 ^ definitely 1.0349x faster proto-getter-access 16.7477+-0.4001 ! 22.1210+-0.2567 ! definitely 1.3208x slower put-by-id-replace-and-transition 13.5422+-0.1951 13.4939+-0.5020 put-by-id-slightly-polymorphic 4.1270+-0.0970 4.1242+-0.0515 put-by-id 19.9316+-0.6846 19.7304+-0.2602 might be 1.0102x faster put-by-val-direct 1.0460+-0.1421 0.9971+-0.1184 might be 1.0490x faster put-by-val-large-index-blank-indexing-type 10.6899+-0.9303 ? 11.5063+-0.2884 ? might be 1.0764x slower put-by-val-machine-int 4.2477+-0.3137 4.1003+-0.2610 might be 1.0359x faster rare-osr-exit-on-local 25.4911+-0.2411 24.4973+-0.8674 might be 1.0406x faster register-pressure-from-osr 38.5587+-0.1077 ^ 38.0007+-0.2934 ^ definitely 1.0147x faster setter 7.2455+-0.1543 7.0966+-0.1738 might be 1.0210x faster simple-activation-demo 44.9509+-0.7473 44.9391+-0.9497 simple-getter-access 21.6575+-0.0892 ! 39.9102+-0.2885 ! definitely 1.8428x slower simple-poly-call-nested 13.4908+-0.4527 13.4630+-0.1723 simple-poly-call 2.1773+-0.0952 2.1533+-0.2194 might be 1.0111x faster sin-boolean 29.4828+-1.5170 ! 37.4934+-0.0964 ! definitely 1.2717x slower sinkable-new-object-dag 116.6228+-0.8593 ! 453.6685+-2.4984 ! definitely 3.8900x slower sinkable-new-object-taken 91.1771+-4.4688 ! 242.0369+-0.6390 ! definitely 2.6546x slower sinkable-new-object 60.9850+-0.9860 ! 225.5914+-2.3441 ! definitely 3.6991x slower slow-array-profile-convergence 5.0558+-0.2884 5.0335+-0.2434 slow-convergence 5.6465+-0.3511 ? 5.6841+-0.3164 ? sparse-conditional 1.8359+-0.1020 1.8192+-0.0972 splice-to-remove 36.6088+-7.1041 34.9860+-5.2682 might be 1.0464x faster string-char-code-at 30.3575+-0.5042 ? 30.5596+-0.1255 ? string-concat-object 3.2576+-0.3479 3.0875+-0.0603 might be 1.0551x faster string-concat-pair-object 3.2261+-0.4070 3.1658+-0.2467 might be 1.0190x faster string-concat-pair-simple 18.6556+-0.2096 18.5200+-0.2180 string-concat-simple 19.8800+-1.4408 19.3168+-0.2418 might be 1.0292x faster string-cons-repeat 12.0523+-0.2335 11.9501+-0.2123 string-cons-tower 11.4610+-0.2810 ? 11.5821+-0.3386 ? might be 1.0106x slower string-equality 33.8660+-1.2201 33.4109+-0.1460 might be 1.0136x faster string-get-by-val-big-char 13.1780+-0.2773 ? 13.2233+-0.3382 ? string-get-by-val-out-of-bounds-insane 8.4455+-0.1898 8.3916+-0.2080 string-get-by-val-out-of-bounds 9.5274+-0.0718 ? 9.5297+-0.1453 ? string-get-by-val 6.7510+-0.1086 6.6613+-0.1287 might be 1.0135x faster string-hash 3.5029+-0.0523 ? 3.5790+-0.1316 ? might be 1.0217x slower string-long-ident-equality 26.6472+-0.2015 ? 26.7075+-0.2235 ? string-repeat-arith 62.1497+-0.6698 ? 62.3445+-0.3617 ? string-sub 128.3932+-13.1800 124.9559+-10.3201 might be 1.0275x faster string-test 4.7396+-0.2010 4.7198+-0.1920 string-var-equality 62.2034+-0.3990 ? 62.4970+-1.1900 ? structure-hoist-over-transitions 4.0231+-0.2828 3.9997+-0.2371 substring-concat-weird 73.2336+-0.6126 73.0629+-0.6829 substring-concat 77.4042+-1.1964 ? 77.5797+-0.8602 ? substring 88.8140+-0.2364 ? 88.9866+-0.1945 ? switch-char-constant 3.8516+-0.1636 ? 3.8702+-0.1977 ? switch-char 11.4363+-0.8443 11.0693+-0.1606 might be 1.0331x faster switch-constant 16.0402+-1.4455 ^ 11.8289+-0.0993 ^ definitely 1.3560x faster switch-string-basic-big-var 28.9197+-3.5943 27.5436+-1.5166 might be 1.0500x faster switch-string-basic-big 24.7867+-1.3142 ? 26.5432+-3.1280 ? might be 1.0709x slower switch-string-basic-var 32.5650+-1.1665 32.4203+-0.6607 switch-string-basic 25.6594+-2.2299 24.6808+-1.9929 might be 1.0396x faster switch-string-big-length-tower-var 30.3538+-0.1972 ? 30.3622+-0.1693 ? switch-string-length-tower-var 25.9030+-0.1544 ? 25.9549+-0.3374 ? switch-string-length-tower 20.7535+-0.1659 ? 20.8020+-0.0925 ? switch-string-short 20.5867+-0.2700 ? 20.7989+-0.5326 ? might be 1.0103x slower switch 19.2795+-1.5976 17.6420+-1.2611 might be 1.0928x faster tear-off-arguments-simple 2.9830+-0.2528 2.9618+-0.2471 tear-off-arguments 4.6494+-0.1883 4.5898+-0.1310 might be 1.0130x faster temporal-structure 20.3470+-0.1224 20.3274+-0.1620 to-int32-boolean 25.0353+-0.1112 24.9971+-0.1751 undefined-property-access 583.9514+-2.0631 ! 1248.4633+-4.2484 ! definitely 2.1380x slower undefined-test 4.9692+-0.1013 ? 5.0055+-0.1810 ? unprofiled-licm 34.7032+-0.5001 ! 92.2252+-0.1580 ! definitely 2.6575x slower weird-inlining-const-prop 3.4278+-0.1809 3.2885+-0.1343 might be 1.0424x faster <arithmetic> 30.5198+-0.0685 ! 40.5466+-0.0709 ! definitely 1.3285x slower <geometric> * 13.5534+-0.0390 ! 14.6148+-0.0240 ! definitely 1.0783x slower <harmonic> 6.7218+-0.0736 ? 6.8254+-0.0598 ? might be 1.0154x slower Baseline CheckFTLCapabilitesAgain AsmBench: bigfib.cpp 878.0169+-4.1164 ! 1629.5879+-8.3457 ! definitely 1.8560x slower cray.c 932.9725+-6.5789 ! 1196.9877+-5.0369 ! definitely 1.2830x slower dry.c 1037.2360+-51.1077 ! 2211.6805+-5.8159 ! definitely 2.1323x slower FloatMM.c 1300.6982+-1.1365 ! 3104.3005+-7.1997 ! definitely 2.3866x slower gcc-loops.cpp 8242.9375+-11.8682 ! 21128.2677+-85.1920 ! definitely 2.5632x slower n-body.c 2459.0804+-1.8172 ! 3349.5526+-7.2435 ! definitely 1.3621x slower Quicksort.c 716.3071+-2.8297 ! 1174.3195+-2.6994 ! definitely 1.6394x slower stepanov_container.cpp 6097.1636+-59.6463 ! 8004.3325+-69.4672 ! definitely 1.3128x slower Towers.c 603.8243+-2.3533 ! 843.3235+-3.4249 ! definitely 1.3966x slower <arithmetic> 2474.2485+-7.4511 ! 4738.0392+-16.7050 ! definitely 1.9149x slower <geometric> * 1573.2813+-7.0126 ! 2695.5319+-4.5170 ! definitely 1.7133x slower <harmonic> 1170.5747+-6.0796 ! 1902.1325+-2.1761 ! definitely 1.6250x slower Baseline CheckFTLCapabilitesAgain CompressionBench: huffman 986.6367+-3.9390 ? 993.3391+-5.5206 ? arithmetic-simple 755.8078+-4.0038 ! 823.0468+-8.9523 ! definitely 1.0890x slower arithmetic-precise 583.7607+-3.9752 ! 638.0286+-11.1589 ! definitely 1.0930x slower arithmetic-complex-precise 581.1090+-4.6540 ! 632.3051+-5.3181 ! definitely 1.0881x slower arithmetic-precise-order-0 880.3327+-2.1561 ! 993.3704+-7.3136 ! definitely 1.1284x slower arithmetic-precise-order-1 634.4040+-7.7519 ! 720.2720+-6.7940 ! definitely 1.1354x slower arithmetic-precise-order-2 695.2308+-2.2665 ! 734.2612+-4.0503 ! definitely 1.0561x slower arithmetic-simple-order-1 783.2249+-24.0466 ! 926.2104+-8.3223 ! definitely 1.1826x slower arithmetic-simple-order-2 856.9854+-9.3096 ! 1010.2057+-10.4138 ! definitely 1.1788x slower lz-string 650.6823+-35.1524 648.1721+-37.3666 <arithmetic> 740.8174+-3.1775 ! 811.9211+-3.9340 ! definitely 1.0960x slower <geometric> * 729.8222+-3.3225 ! 798.2359+-4.8790 ! definitely 1.0937x slower <harmonic> 719.2511+-3.5920 ! 784.8371+-5.8218 ! definitely 1.0912x slower Baseline CheckFTLCapabilitesAgain All benchmarks: <arithmetic> 187.2725+-1.3372 ! 260.5900+-0.3086 ! definitely 1.3915x slower <geometric> 23.1282+-0.0289 ! 25.4349+-0.0259 ! definitely 1.0997x slower <harmonic> 5.8469+-0.0445 ! 6.5479+-0.0676 ! definitely 1.1199x slower Baseline CheckFTLCapabilitesAgain Geomean of preferred means: <scaled-result> 119.5923+-0.4503 ! 137.5658+-0.2518 ! definitely 1.1503x slower
Filip Pizlo
Comment 9
2015-02-10 08:18:31 PST
Seems like capabilities is rejecting some SSA-only node. Have you checked which one? The verboseFTLFailure option helps.
Michael Saboff
Comment 10
2015-02-10 13:08:02 PST
Created
attachment 246339
[details]
Patch for Review With the addition of GetArgument to nodes the FTL can compile, performance of this change is neutral. Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on msaboff-pro (MacPro5,1). VMs tested: "Baseline" at /Volumes/Data/src/webkit.baseline/WebKitBuild/Release/JavaScriptCore.framework/Versions/A/Resources/jsc "GCDontDropLocks" at /Volumes/Data/src/webkit/WebKitBuild/Release/JavaScriptCore.framework/Versions/A/Resources/jsc Collected 4 samples per benchmark/VM, with 4 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. Baseline GCDontDropLocks SunSpider: 3d-cube 8.4182+-0.1632 ? 8.4540+-0.2904 ? 3d-morph 12.5315+-0.1126 12.3455+-0.1700 might be 1.0151x faster 3d-raytrace 11.2659+-0.2415 ? 11.2862+-0.5272 ? access-binary-trees 3.3699+-0.2193 ? 3.3897+-0.1905 ? access-fannkuch 10.3343+-0.1275 ? 10.3641+-0.1133 ? access-nbody 5.3344+-0.1630 ? 5.4145+-0.1666 ? might be 1.0150x slower access-nsieve 5.7599+-0.2325 ? 5.8395+-0.4122 ? might be 1.0138x slower bitops-3bit-bits-in-byte 2.3200+-0.0779 ? 2.3464+-0.1267 ? might be 1.0114x slower bitops-bits-in-byte 6.4326+-0.0727 6.3898+-0.1107 bitops-bitwise-and 3.2323+-0.5347 3.0872+-0.0985 might be 1.0470x faster bitops-nsieve-bits 6.7697+-0.2507 6.7692+-0.2439 controlflow-recursive 3.5411+-0.1371 ? 3.5575+-0.1420 ? crypto-aes 7.3265+-0.1178 7.2000+-0.2995 might be 1.0176x faster crypto-md5 4.1788+-0.1741 ? 4.2330+-0.3140 ? might be 1.0130x slower crypto-sha1 4.2776+-0.1844 4.1335+-0.1470 might be 1.0349x faster date-format-tofte 16.4802+-0.8108 ? 16.7255+-0.4282 ? might be 1.0149x slower date-format-xparb 9.0560+-0.3985 ? 9.2162+-0.5968 ? might be 1.0177x slower math-cordic 5.5895+-0.0596 5.5720+-0.2297 math-partial-sums 10.9075+-0.1516 ? 11.0041+-0.1998 ? math-spectral-norm 3.6575+-0.0922 3.5025+-0.0993 might be 1.0443x faster regexp-dna 11.5829+-0.4284 11.5226+-0.3204 string-base64 7.2734+-0.4649 7.0970+-0.2133 might be 1.0249x faster string-fasta 12.1530+-0.1269 11.8853+-0.3384 might be 1.0225x faster string-tagcloud 17.6798+-0.7478 ? 17.8823+-0.8228 ? might be 1.0115x slower string-unpack-code 37.7018+-0.8088 ? 38.7096+-1.0123 ? might be 1.0267x slower string-validate-input 8.4999+-0.2591 8.3740+-0.0986 might be 1.0150x faster <arithmetic> * 9.0644+-0.0219 ? 9.0885+-0.0890 ? might be 1.0027x slower <geometric> 7.3782+-0.0384 7.3558+-0.0622 might be 1.0031x faster <harmonic> 6.1857+-0.0489 6.1506+-0.0511 might be 1.0057x faster Baseline GCDontDropLocks LongSpider: 3d-cube 1572.4506+-15.8268 ? 1579.3855+-14.0683 ? 3d-morph 1978.3008+-2.8752 ? 1979.7406+-5.3939 ? 3d-raytrace 1545.5157+-5.8466 1542.8701+-13.7048 access-binary-trees 1857.8989+-12.9700 ? 1865.8145+-14.8117 ? access-fannkuch 612.4640+-16.6624 603.9508+-27.4607 might be 1.0141x faster access-nbody 1479.2485+-0.7502 ? 1480.2745+-2.9993 ? access-nsieve 1815.8328+-22.5018 ? 1816.2382+-1.3841 ? bitops-3bit-bits-in-byte 70.5505+-0.4485 ? 71.1366+-0.8852 ? bitops-bits-in-byte 364.9235+-9.0461 ? 371.5090+-20.2799 ? might be 1.0180x slower bitops-nsieve-bits 1451.4608+-9.9395 ? 1454.1737+-3.7660 ? controlflow-recursive 1088.8662+-3.8220 ! 1100.7425+-4.0526 ! definitely 1.0109x slower crypto-aes 1290.4815+-7.2738 1287.4751+-8.8507 crypto-md5 1074.3110+-11.4371 ? 1077.0363+-9.5350 ? crypto-sha1 1451.3952+-6.7547 1447.1078+-2.2909 date-format-tofte 1504.3210+-34.7836 ? 1505.2068+-46.5842 ? date-format-xparb 1382.9160+-34.4685 ? 1386.0083+-58.8536 ? math-cordic 1048.7971+-2.3046 1047.6755+-3.3711 math-partial-sums 1278.7834+-1.2912 ? 1279.2395+-4.4666 ? math-spectral-norm 1220.3388+-5.9809 1218.7812+-2.6360 string-base64 633.7208+-2.0387 631.6899+-0.6469 string-fasta 856.6053+-9.0596 854.2009+-7.9423 string-tagcloud 420.4265+-3.1453 ? 427.4407+-4.9112 ? might be 1.0167x slower <arithmetic> 1181.8004+-1.9563 ? 1183.0772+-3.1142 ? might be 1.0011x slower <geometric> * 996.9258+-2.5696 ? 998.8010+-5.1858 ? might be 1.0019x slower <harmonic> 625.5198+-2.7878 ? 628.8298+-5.7468 ? might be 1.0053x slower Baseline GCDontDropLocks V8Spider: crypto 101.2330+-0.9714 99.7784+-1.0863 might be 1.0146x faster deltablue 124.5154+-4.9894 ? 126.6332+-5.5302 ? might be 1.0170x slower earley-boyer 81.0359+-2.9248 80.9374+-2.3870 raytrace 51.1403+-1.9148 50.2490+-2.2622 might be 1.0177x faster regexp 127.8777+-1.2461 ? 128.4796+-1.9493 ? richards 131.1280+-2.5493 130.1443+-3.1131 splay 58.5543+-2.9304 ? 59.8976+-7.3677 ? might be 1.0229x slower <arithmetic> 96.4978+-1.0637 ? 96.5885+-1.9003 ? might be 1.0009x slower <geometric> * 90.8896+-0.8476 ? 90.9124+-2.0287 ? might be 1.0003x slower <harmonic> 84.9957+-0.6852 84.9280+-2.2587 might be 1.0008x faster Baseline GCDontDropLocks Octane: encrypt 0.46304+-0.01328 ? 0.46374+-0.01389 ? decrypt 8.23338+-0.05522 8.23142+-0.02429 deltablue x2 0.39298+-0.01138 ? 0.39656+-0.01005 ? earley 1.31261+-0.01279 ? 1.31339+-0.01974 ? boyer 11.82759+-0.18553 ? 11.93536+-0.17688 ? navier-stokes x2 7.37550+-0.00269 ? 7.38452+-0.03123 ? raytrace x2 2.61455+-0.06000 2.59075+-0.10635 richards x2 0.24120+-0.00097 0.24073+-0.00149 splay x2 0.66273+-0.00946 0.66208+-0.00847 regexp x2 62.70158+-1.07559 62.29042+-2.17956 pdfjs x2 97.02221+-0.86093 96.58048+-1.72717 mandreel x2 107.28598+-0.41204 106.62174+-0.70212 gbemu x2 96.74476+-4.03921 ? 97.38819+-5.47451 ? closure 0.96883+-0.00451 ? 0.96913+-0.00360 ? jquery 12.32544+-0.08550 ? 12.35530+-0.10213 ? box2d x2 28.16444+-0.20330 ? 28.17626+-0.14401 ? zlib x2 860.01270+-77.42407 859.88035+-84.05314 typescript x2 1470.67902+-9.90368 ? 1496.47662+-28.37605 ? might be 1.0175x slower <arithmetic> 183.43087+-5.00017 ? 185.08819+-3.90105 ? might be 1.0090x slower <geometric> * 13.30281+-0.04420 ? 13.31272+-0.06124 ? might be 1.0007x slower <harmonic> 1.37335+-0.00442 ? 1.37490+-0.00435 ? might be 1.0011x slower Baseline GCDontDropLocks Kraken: ai-astar 828.281+-2.947 818.522+-28.189 might be 1.0119x faster audio-beat-detection 220.410+-1.706 217.615+-5.702 might be 1.0128x faster audio-dft 292.362+-1.850 ? 298.274+-24.488 ? might be 1.0202x slower audio-fft 155.227+-0.530 ? 156.124+-0.490 ? audio-oscillator 427.786+-2.012 ? 428.788+-3.065 ? imaging-darkroom 335.533+-1.042 ? 336.196+-3.089 ? imaging-desaturate 144.997+-0.237 ? 145.393+-1.363 ? imaging-gaussian-blur 222.434+-16.802 216.910+-0.663 might be 1.0255x faster json-parse-financial 92.556+-1.588 ? 92.907+-1.619 ? json-stringify-tinderbox 112.199+-1.240 ? 114.627+-5.114 ? might be 1.0216x slower stanford-crypto-aes 117.362+-4.287 ? 120.658+-2.694 ? might be 1.0281x slower stanford-crypto-ccm 96.086+-8.788 ? 103.093+-18.441 ? might be 1.0729x slower stanford-crypto-pbkdf2 313.001+-1.601 ? 313.086+-2.011 ? stanford-crypto-sha256-iterative 95.575+-0.941 94.668+-1.720 <arithmetic> * 246.701+-0.818 ? 246.918+-3.371 ? might be 1.0009x slower <geometric> 197.155+-0.961 ? 198.474+-3.148 ? might be 1.0067x slower <harmonic> 165.377+-1.442 ? 167.266+-3.681 ? might be 1.0114x slower Baseline GCDontDropLocks JSRegress: abs-boolean 4.6545+-0.1008 ? 4.6977+-0.0741 ? adapt-to-double-divide 19.3527+-0.6111 ? 19.9943+-0.4514 ? might be 1.0332x slower aliased-arguments-getbyval 1.4955+-0.0319 1.4733+-0.0986 might be 1.0151x faster allocate-big-object 3.8573+-0.5466 3.6166+-0.2219 might be 1.0666x faster arity-mismatch-inlining 1.4124+-0.0974 1.2565+-0.0749 might be 1.1240x faster array-access-polymorphic-structure 12.4926+-0.2404 ? 12.5963+-0.1836 ? array-nonarray-polymorhpic-access 71.9895+-8.8771 68.9149+-0.1559 might be 1.0446x faster array-prototype-every 187.1476+-5.9625 ? 187.2065+-9.4322 ? array-prototype-forEach 185.5018+-16.1921 ? 185.6143+-5.2219 ? array-prototype-map 223.3948+-6.2899 221.9315+-8.4885 array-prototype-some 192.0681+-9.1314 190.5795+-16.8366 array-splice-contiguous 90.4393+-4.8265 ? 91.5522+-4.7159 ? might be 1.0123x slower array-with-double-add 7.5663+-0.1389 7.4557+-0.2137 might be 1.0148x faster array-with-double-increment 5.4986+-0.0963 5.4875+-0.1367 array-with-double-mul-add 11.7545+-0.1279 11.5923+-0.1017 might be 1.0140x faster array-with-double-sum 5.5007+-0.1519 ? 5.5163+-0.1817 ? array-with-int32-add-sub 13.1166+-0.1854 ? 13.1217+-0.1490 ? array-with-int32-or-double-sum 5.2689+-0.1974 ? 5.3748+-0.2729 ? might be 1.0201x slower ArrayBuffer-DataView-alloc-large-long-lived 65.6398+-2.5010 ? 65.8452+-3.7800 ? ArrayBuffer-DataView-alloc-long-lived 27.2765+-1.3810 ? 27.8345+-3.0536 ? might be 1.0205x slower ArrayBuffer-Int32Array-byteOffset 5.2795+-0.1901 ? 5.2905+-0.4848 ? ArrayBuffer-Int8Array-alloc-large-long-lived 69.6019+-1.3762 ? 71.2387+-5.1734 ? might be 1.0235x slower ArrayBuffer-Int8Array-alloc-long-lived-buffer 44.7752+-2.0712 44.2270+-1.2250 might be 1.0124x faster ArrayBuffer-Int8Array-alloc-long-lived 25.0690+-0.6854 ? 27.1992+-3.2519 ? might be 1.0850x slower ArrayBuffer-Int8Array-alloc 21.3313+-0.8172 21.1887+-0.8477 asmjs_bool_bug 12.9000+-0.2973 12.7668+-0.0764 might be 1.0104x faster assign-custom-setter-polymorphic 6.1367+-0.1806 6.0308+-0.2188 might be 1.0176x faster assign-custom-setter 8.1672+-0.1334 ? 8.2919+-0.2043 ? might be 1.0153x slower basic-set 17.5738+-0.4739 ? 18.1650+-1.2100 ? might be 1.0336x slower big-int-mul 7.7270+-0.1088 7.7198+-0.0846 boolean-test 4.9018+-0.0622 ? 4.9471+-0.0962 ? branch-fold 5.1659+-0.1001 ? 5.1785+-0.0697 ? by-val-generic 15.2974+-0.2972 ? 15.6628+-0.2196 ? might be 1.0239x slower call-spread-apply 26.5145+-0.7496 26.2604+-0.8804 call-spread-call 11.6060+-0.6335 ? 11.6605+-0.5409 ? captured-assignments 0.8287+-0.1338 ? 0.8297+-0.1586 ? cast-int-to-double 8.5576+-0.1353 8.5499+-0.1462 cell-argument 12.0210+-0.2253 ? 12.1844+-0.2870 ? might be 1.0136x slower cfg-simplify 4.0751+-0.2984 3.9841+-0.1415 might be 1.0228x faster chain-getter-access 17.0258+-0.6231 16.9030+-0.2355 cmpeq-obj-to-obj-other 16.3461+-0.8813 16.1530+-0.2867 might be 1.0120x faster constant-test 8.0795+-0.1347 ? 8.0857+-0.0887 ? DataView-custom-properties 74.0634+-3.0873 72.5284+-1.9700 might be 1.0212x faster delay-tear-off-arguments-strictmode 44.4702+-2.4880 44.3380+-0.9907 destructuring-arguments 9.1158+-0.1124 ? 9.2268+-0.3004 ? might be 1.0122x slower destructuring-swap 8.2737+-0.2112 8.2017+-0.1495 direct-arguments-getbyval 1.5498+-0.0580 ? 1.5948+-0.0885 ? might be 1.0290x slower div-boolean-double 5.9710+-0.1101 5.9473+-0.1471 div-boolean 10.1363+-0.1685 ? 10.1957+-0.0914 ? double-get-by-val-out-of-bounds 7.9268+-0.1203 ? 7.9448+-0.3699 ? double-pollution-getbyval 10.0666+-0.0848 10.0246+-0.1511 double-pollution-putbyoffset 7.9918+-0.1625 7.9761+-0.0645 double-to-int32-typed-array-no-inline 3.6428+-0.1966 ? 3.7709+-0.2960 ? might be 1.0352x slower double-to-int32-typed-array 3.1005+-0.1723 ? 3.2510+-0.0592 ? might be 1.0485x slower double-to-uint32-typed-array-no-inline 3.7531+-0.1611 ? 3.7822+-0.1117 ? double-to-uint32-typed-array 3.3169+-0.1672 ? 3.4016+-0.0778 ? might be 1.0255x slower elidable-new-object-dag 62.3590+-1.7917 ? 62.3649+-0.9649 ? elidable-new-object-roflcopter 237.8345+-0.5354 237.2275+-3.8306 elidable-new-object-then-call 59.6786+-1.0979 ? 59.7554+-0.6394 ? elidable-new-object-tree 69.5608+-2.0522 69.3770+-1.7358 empty-string-plus-int 10.3713+-0.4963 ? 10.4081+-0.2331 ? emscripten-cube2hash 58.9937+-2.8777 57.2469+-0.8571 might be 1.0305x faster external-arguments-getbyval 2.4733+-0.1644 ? 2.6055+-0.0549 ? might be 1.0535x slower external-arguments-putbyval 3.8029+-0.2167 3.7583+-0.2723 might be 1.0119x faster fixed-typed-array-storage-var-index 1.9705+-0.1155 1.9130+-0.1172 might be 1.0300x faster fixed-typed-array-storage 1.4205+-0.1536 ? 1.5037+-0.1146 ? might be 1.0585x slower Float32Array-matrix-mult 8.6047+-0.6410 ? 8.7645+-1.0707 ? might be 1.0186x slower Float32Array-to-Float64Array-set 116.5335+-1.2744 ? 119.3748+-7.6337 ? might be 1.0244x slower Float64Array-alloc-long-lived 104.0468+-0.2593 103.6662+-0.3895 Float64Array-to-Int16Array-set 148.9898+-6.4143 143.4996+-0.3547 might be 1.0383x faster fold-double-to-int 23.9456+-0.1385 23.7025+-0.3318 might be 1.0103x faster fold-get-by-id-to-multi-get-by-offset-rare-int 14.5051+-0.5287 ? 14.8297+-1.3090 ? might be 1.0224x slower fold-get-by-id-to-multi-get-by-offset 12.3587+-0.6665 ? 12.5906+-0.4061 ? might be 1.0188x slower fold-multi-get-by-offset-to-get-by-offset 10.8820+-1.2692 ? 11.0045+-1.3174 ? might be 1.0113x slower fold-multi-get-by-offset-to-poly-get-by-offset 10.7514+-0.1000 ? 11.3784+-1.2265 ? might be 1.0583x slower fold-multi-put-by-offset-to-poly-put-by-offset 10.3288+-1.2627 9.9453+-0.9965 might be 1.0386x faster fold-multi-put-by-offset-to-put-by-offset 8.8533+-1.0844 8.1558+-1.2579 might be 1.0855x faster fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 15.7582+-1.4230 15.6997+-1.5090 fold-put-by-id-to-multi-put-by-offset 12.3923+-0.6360 ^ 11.2931+-0.2172 ^ definitely 1.0973x faster fold-put-structure 8.7355+-1.2192 8.4242+-0.7025 might be 1.0370x faster for-of-iterate-array-entries 10.8713+-0.2986 ? 11.1339+-0.3514 ? might be 1.0242x slower for-of-iterate-array-keys 4.9062+-0.1528 ? 5.1445+-0.1526 ? might be 1.0486x slower for-of-iterate-array-values 4.2009+-0.3647 ? 4.4331+-0.3128 ? might be 1.0553x slower fround 25.7797+-0.9133 ? 25.8633+-0.4932 ? ftl-library-inlining-dataview 154.1937+-16.4122 ? 163.3884+-35.6620 ? might be 1.0596x slower ftl-library-inlining 137.4650+-7.6708 132.9558+-0.2219 might be 1.0339x faster function-dot-apply 2.8934+-0.1718 2.8358+-0.1823 might be 1.0203x faster function-test 5.4753+-0.1121 ? 5.5850+-0.0873 ? might be 1.0200x slower function-with-eval 221.8502+-2.4193 ? 224.4473+-3.2197 ? might be 1.0117x slower gcse-poly-get-less-obvious 36.7003+-0.3625 ? 36.8351+-0.5225 ? gcse-poly-get 36.8918+-0.5441 36.7315+-0.2858 gcse 9.1646+-0.1711 ? 9.2031+-0.2400 ? get-by-id-bimorphic-check-structure-elimination-simple 4.1537+-0.2285 4.0828+-0.1580 might be 1.0174x faster get-by-id-bimorphic-check-structure-elimination 12.0768+-0.0904 11.9962+-0.0835 get-by-id-chain-from-try-block 19.6868+-0.1434 19.5738+-0.1529 get-by-id-check-structure-elimination 10.7141+-0.1719 ? 10.7539+-0.1667 ? get-by-id-proto-or-self 32.2889+-4.9828 30.8953+-0.8073 might be 1.0451x faster get-by-id-quadmorphic-check-structure-elimination-simple 5.2346+-0.1283 5.0843+-0.0552 might be 1.0296x faster get-by-id-self-or-proto 32.5116+-3.3519 31.6240+-3.8106 might be 1.0281x faster get-by-val-out-of-bounds 7.5823+-0.0792 ? 7.8698+-0.4309 ? might be 1.0379x slower get_callee_monomorphic 6.0835+-0.6218 ? 6.3014+-0.5218 ? might be 1.0358x slower get_callee_polymorphic 5.2173+-0.2648 ? 5.3146+-0.3111 ? might be 1.0187x slower getter-no-activation 6.3169+-0.0424 ? 6.3377+-0.0557 ? getter-richards 179.4138+-4.1424 ? 179.5891+-4.4725 ? getter 9.0655+-0.6084 9.0225+-0.3642 global-var-const-infer-fire-from-opt 1.6066+-0.2165 1.5850+-0.2767 might be 1.0136x faster global-var-const-infer 1.5861+-0.0430 ? 1.6118+-0.2625 ? might be 1.0162x slower HashMap-put-get-iterate-keys 50.1355+-0.4759 ? 50.6242+-2.4185 ? HashMap-put-get-iterate 48.8799+-0.8023 ? 49.1795+-0.7087 ? HashMap-string-put-get-iterate 49.7312+-0.8450 ? 49.8484+-0.5696 ? hoist-make-rope 16.1805+-0.6725 ? 16.9859+-1.6259 ? might be 1.0498x slower hoist-poly-check-structure-effectful-loop 9.6718+-0.1211 9.5989+-0.2094 hoist-poly-check-structure 6.2363+-0.1985 ? 6.3167+-0.0493 ? might be 1.0129x slower imul-double-only 13.1089+-2.2498 12.6905+-1.4664 might be 1.0330x faster imul-int-only 14.5789+-0.1185 ? 14.6594+-0.3395 ? imul-mixed 12.2266+-0.4641 ? 12.8387+-1.1413 ? might be 1.0501x slower in-four-cases 36.2007+-0.5397 35.9999+-0.0827 in-one-case-false 18.6770+-0.3047 18.5905+-0.2504 in-one-case-true 18.5460+-0.1473 ? 18.6664+-0.3203 ? in-two-cases 19.3434+-0.0931 ? 19.4129+-0.0942 ? indexed-properties-in-objects 4.6365+-0.1307 ? 4.6815+-0.0618 ? infer-closure-const-then-mov-no-inline 5.9440+-0.1169 ? 6.0260+-0.1108 ? might be 1.0138x slower infer-closure-const-then-mov 26.4353+-1.0216 26.2432+-0.1218 infer-closure-const-then-put-to-scope-no-inline 19.8334+-0.1292 ? 19.9190+-0.1847 ? infer-closure-const-then-put-to-scope 33.5945+-1.1687 ? 34.1675+-1.2123 ? might be 1.0171x slower infer-closure-const-then-reenter-no-inline 92.9028+-0.1778 92.8307+-0.2439 infer-closure-const-then-reenter 31.6311+-0.2693 ? 31.9343+-0.3087 ? infer-constant-global-property 38.9811+-0.1272 38.8700+-0.0992 infer-constant-property 3.5612+-0.1180 ? 3.6152+-0.1376 ? might be 1.0152x slower infer-one-time-closure-ten-vars 17.7716+-0.2258 ? 18.0256+-0.9638 ? might be 1.0143x slower infer-one-time-closure-two-vars 16.8160+-0.6024 ? 17.1002+-0.2575 ? might be 1.0169x slower infer-one-time-closure 16.8242+-0.2903 ? 16.8865+-0.3971 ? infer-one-time-deep-closure 29.9249+-1.2084 ? 29.9713+-0.4506 ? inline-arguments-access 2.7684+-0.0437 ? 2.8510+-0.2293 ? might be 1.0299x slower inline-arguments-aliased-access 3.1318+-0.0828 ? 3.1490+-0.1237 ? inline-arguments-local-escape 25.7004+-0.6012 ? 25.8563+-0.3643 ? inline-get-scoped-var 5.9445+-0.1765 5.8370+-0.1153 might be 1.0184x faster inlined-put-by-id-transition 18.0613+-1.9021 ? 18.4288+-0.1420 ? might be 1.0203x slower int-or-other-abs-then-get-by-val 9.4550+-0.1142 ? 9.4913+-0.1928 ? int-or-other-abs-zero-then-get-by-val 34.2383+-0.6654 33.9043+-0.3192 int-or-other-add-then-get-by-val 8.4260+-0.2032 ? 8.5445+-0.2433 ? might be 1.0141x slower int-or-other-add 9.0619+-0.0778 ? 9.0886+-0.2179 ? int-or-other-div-then-get-by-val 6.4757+-0.0938 ? 6.5332+-0.1177 ? int-or-other-max-then-get-by-val 7.9882+-0.1066 ? 8.1210+-0.2448 ? might be 1.0166x slower int-or-other-min-then-get-by-val 7.2601+-0.1107 ? 7.2715+-0.1845 ? int-or-other-mod-then-get-by-val 6.2218+-0.2850 6.1956+-0.0833 int-or-other-mul-then-get-by-val 6.4114+-0.1926 ? 6.4952+-0.1481 ? might be 1.0131x slower int-or-other-neg-then-get-by-val 8.0944+-0.1098 8.0889+-0.1770 int-or-other-neg-zero-then-get-by-val 34.1515+-0.4809 33.8409+-0.2093 int-or-other-sub-then-get-by-val 8.7601+-0.1033 8.6185+-0.0679 might be 1.0164x faster int-or-other-sub 6.9061+-0.3401 ? 6.9680+-0.1051 ? int-overflow-local 7.9780+-0.1877 ? 7.9924+-0.0832 ? Int16Array-alloc-long-lived 77.0925+-0.1268 ^ 76.5705+-0.3326 ^ definitely 1.0068x faster Int16Array-bubble-sort-with-byteLength 51.0751+-0.4058 ? 51.3408+-0.5052 ? Int16Array-bubble-sort 49.8894+-0.4473 49.6786+-0.2021 Int16Array-load-int-mul 2.3148+-0.0959 2.3042+-0.1090 Int16Array-to-Int32Array-set 126.8885+-37.2383 ? 128.5230+-38.8723 ? might be 1.0129x slower Int32Array-alloc-large 38.2947+-0.8977 38.0353+-1.3629 Int32Array-alloc-long-lived 84.4915+-0.8421 ? 84.5505+-1.3463 ? Int32Array-alloc 4.9767+-0.1688 4.7601+-0.1492 might be 1.0455x faster Int32Array-Int8Array-view-alloc 12.7070+-0.5780 12.3931+-0.5526 might be 1.0253x faster int52-spill 12.1982+-0.4893 ? 12.6000+-0.3576 ? might be 1.0329x slower Int8Array-alloc-long-lived 71.3340+-1.1899 70.4129+-0.7941 might be 1.0131x faster Int8Array-load-with-byteLength 5.2761+-0.2294 5.2421+-0.2216 Int8Array-load 5.1584+-0.1096 ? 5.2700+-0.0917 ? might be 1.0216x slower integer-divide 19.2887+-0.1819 ? 19.3428+-0.1846 ? integer-modulo 3.6653+-0.1631 3.5782+-0.1457 might be 1.0243x faster large-int-captured 12.2614+-0.1279 ? 12.6848+-0.4867 ? might be 1.0345x slower large-int-neg 30.6094+-0.3377 ? 30.6644+-0.0403 ? large-int 27.7270+-0.1358 ? 27.7870+-0.1581 ? logical-not 8.4051+-0.2113 8.0862+-0.3146 might be 1.0394x faster lots-of-fields 19.1578+-0.3510 ? 19.3359+-0.2173 ? make-indexed-storage 5.2587+-0.6761 ? 5.4574+-0.1207 ? might be 1.0378x slower make-rope-cse 6.4254+-0.3720 6.3045+-0.3535 might be 1.0192x faster marsaglia-larger-ints 68.4944+-1.2980 68.3429+-0.8048 marsaglia-osr-entry 34.6706+-1.1035 ? 34.7924+-0.6926 ? max-boolean 4.0743+-0.1784 3.9473+-0.1376 might be 1.0322x faster method-on-number 33.9269+-0.2022 ? 34.1981+-1.0151 ? min-boolean 3.8382+-0.1578 ? 3.8660+-0.2156 ? minus-boolean-double 4.4182+-0.1638 ? 4.4248+-0.1018 ? minus-boolean 3.7380+-0.0944 ? 3.7861+-0.0624 ? might be 1.0129x slower misc-strict-eq 74.3518+-7.9824 71.5353+-1.3269 might be 1.0394x faster mod-boolean-double 14.4360+-0.2254 14.3428+-0.1270 mod-boolean 9.1984+-0.0591 9.1083+-0.1100 mul-boolean-double 5.1852+-0.6855 5.0608+-0.1051 might be 1.0246x faster mul-boolean 4.0546+-0.1205 4.0192+-0.1044 neg-boolean 4.6334+-0.1319 ? 4.6467+-0.1506 ? negative-zero-divide 0.6107+-0.1278 ? 0.6289+-0.1460 ? might be 1.0298x slower negative-zero-modulo 0.5576+-0.0173 ? 0.5930+-0.0952 ? might be 1.0635x slower negative-zero-negate 0.5408+-0.1091 0.5388+-0.1032 nested-function-parsing 41.5181+-1.7234 ? 42.3985+-1.5201 ? might be 1.0212x slower new-array-buffer-dead 4.0348+-0.2512 ? 4.1336+-0.1203 ? might be 1.0245x slower new-array-buffer-push 10.3823+-0.3156 ? 10.4253+-0.0880 ? new-array-dead 17.5992+-1.5918 17.5905+-0.9402 new-array-push 8.0272+-0.1962 ? 8.0565+-0.3378 ? number-test 4.8040+-0.1225 ? 4.8043+-0.1512 ? object-closure-call 10.6111+-0.2575 10.5595+-0.1573 object-test 5.2485+-0.1693 5.1948+-0.1835 might be 1.0103x faster obvious-sink-pathology-taken 215.1147+-3.3997 214.1620+-0.4644 obvious-sink-pathology 200.1269+-8.1760 199.9217+-1.9846 obviously-elidable-new-object 55.3165+-1.5017 54.9796+-1.2386 plus-boolean-arith 4.0870+-0.1010 4.0074+-0.1210 might be 1.0199x faster plus-boolean-double 4.4862+-0.1642 4.4242+-0.0713 might be 1.0140x faster plus-boolean 3.5700+-0.1719 ? 3.7527+-0.0908 ? might be 1.0512x slower poly-chain-access-different-prototypes-simple 5.1960+-0.2069 5.0916+-0.0796 might be 1.0205x faster poly-chain-access-different-prototypes 3.6784+-0.1030 3.5420+-0.0853 might be 1.0385x faster poly-chain-access-simpler 5.2195+-0.1059 5.1636+-0.1145 might be 1.0108x faster poly-chain-access 3.4917+-0.1433 ? 3.5483+-0.1412 ? might be 1.0162x slower poly-stricteq 100.1656+-0.1469 100.0320+-0.4477 polymorphic-array-call 2.9268+-0.1696 2.7316+-0.1322 might be 1.0715x faster polymorphic-get-by-id 5.2484+-0.1124 ? 5.2796+-0.1482 ? polymorphic-put-by-id 48.1115+-0.5151 ? 49.0697+-8.2517 ? might be 1.0199x slower polymorphic-structure 33.3530+-1.2016 32.7623+-0.9687 might be 1.0180x faster polyvariant-monomorphic-get-by-id 16.9235+-0.1080 16.8543+-0.1604 proto-getter-access 16.7967+-0.6746 ? 16.8078+-0.5516 ? put-by-id-replace-and-transition 13.6254+-0.0431 ? 13.6846+-0.2404 ? put-by-id-slightly-polymorphic 4.0937+-0.1532 ? 4.1898+-0.0794 ? might be 1.0235x slower put-by-id 19.5258+-0.1566 ? 19.9422+-0.7256 ? might be 1.0213x slower put-by-val-direct 0.9742+-0.0450 ? 1.0237+-0.1441 ? might be 1.0508x slower put-by-val-large-index-blank-indexing-type 10.8092+-0.8496 ? 11.6863+-0.2738 ? might be 1.0811x slower put-by-val-machine-int 4.1487+-0.1740 ? 4.1952+-0.2794 ? might be 1.0112x slower rare-osr-exit-on-local 25.5348+-0.1545 25.5187+-0.3310 register-pressure-from-osr 38.4960+-0.1936 ? 38.6727+-0.0769 ? setter 7.2130+-0.0968 ? 7.2328+-0.0739 ? simple-activation-demo 44.9634+-0.3848 44.7938+-0.5353 simple-getter-access 21.7957+-0.4772 ? 22.1135+-0.7077 ? might be 1.0146x slower simple-poly-call-nested 13.0504+-0.3860 ? 13.3170+-0.2746 ? might be 1.0204x slower simple-poly-call 2.1075+-0.2394 ? 2.1107+-0.3298 ? sin-boolean 29.0068+-0.6013 ? 30.5367+-1.1111 ? might be 1.0527x slower sinkable-new-object-dag 116.1004+-1.2779 ? 116.1453+-1.2708 ? sinkable-new-object-taken 90.1947+-1.1470 ? 90.2230+-0.6040 ? sinkable-new-object 60.7133+-0.7831 60.1281+-1.4341 slow-array-profile-convergence 5.1678+-0.2608 5.1115+-0.5768 might be 1.0110x faster slow-convergence 5.5082+-0.2399 ? 5.7157+-0.3581 ? might be 1.0377x slower sparse-conditional 1.8230+-0.0778 1.8137+-0.1822 splice-to-remove 36.6860+-6.2339 ? 37.4087+-4.8565 ? might be 1.0197x slower string-char-code-at 30.4198+-0.5544 ? 30.6482+-0.6200 ? string-concat-object 3.2625+-0.4250 3.2300+-0.2563 might be 1.0101x faster string-concat-pair-object 3.4754+-0.1915 ? 3.5167+-0.0466 ? might be 1.0119x slower string-concat-pair-simple 18.8889+-0.4752 18.6403+-0.3163 might be 1.0133x faster string-concat-simple 19.6453+-0.5054 19.4712+-0.6016 string-cons-repeat 12.0885+-0.4172 11.7490+-0.1585 might be 1.0289x faster string-cons-tower 11.7847+-0.3797 11.4280+-0.4871 might be 1.0312x faster string-equality 33.8126+-0.9173 33.6017+-0.3902 string-get-by-val-big-char 13.4598+-0.3470 ? 13.8488+-1.1826 ? might be 1.0289x slower string-get-by-val-out-of-bounds-insane 8.3265+-0.3481 ? 8.5162+-0.3630 ? might be 1.0228x slower string-get-by-val-out-of-bounds 9.5153+-0.2000 ? 9.6157+-0.2603 ? might be 1.0106x slower string-get-by-val 6.7004+-0.0627 ? 6.8144+-0.2128 ? might be 1.0170x slower string-hash 3.6866+-0.0850 3.6252+-0.2137 might be 1.0169x faster string-long-ident-equality 26.6011+-0.2583 ? 26.7570+-0.2267 ? string-repeat-arith 62.3745+-0.1286 ? 62.6171+-0.3591 ? string-sub 122.9592+-7.1406 ? 123.6145+-6.0449 ? string-test 4.6650+-0.1218 ? 4.7573+-0.2209 ? might be 1.0198x slower string-var-equality 61.9735+-0.4045 ? 62.0135+-0.4012 ? structure-hoist-over-transitions 4.0211+-0.2445 ? 4.0335+-0.2540 ? substring-concat-weird 73.1310+-0.4691 ? 73.1920+-0.7983 ? substring-concat 77.1300+-0.4742 ? 77.7907+-0.9704 ? substring 89.0831+-0.7636 88.9203+-0.4069 switch-char-constant 3.8557+-0.2372 ? 3.8702+-0.1269 ? switch-char 11.2290+-0.0767 11.1948+-0.0271 switch-constant 15.9353+-0.5084 15.4952+-0.7201 might be 1.0284x faster switch-string-basic-big-var 30.1849+-0.6670 ? 30.8915+-4.0400 ? might be 1.0234x slower switch-string-basic-big 24.2051+-1.0537 ? 24.4816+-1.0980 ? might be 1.0114x slower switch-string-basic-var 32.3972+-0.7530 32.2527+-1.1010 switch-string-basic 24.6594+-1.1668 ? 24.7790+-3.6750 ? switch-string-big-length-tower-var 30.3163+-0.1803 30.2670+-0.1426 switch-string-length-tower-var 25.9023+-0.2995 ? 26.0675+-0.3798 ? switch-string-length-tower 20.9170+-0.3035 ? 20.9708+-0.3997 ? switch-string-short 20.4302+-0.4061 ? 20.6995+-0.2808 ? might be 1.0132x slower switch 20.1923+-3.0800 20.1823+-3.7469 tear-off-arguments-simple 3.1180+-0.2133 ? 3.1375+-0.1730 ? tear-off-arguments 4.7030+-0.0983 4.6130+-0.2698 might be 1.0195x faster temporal-structure 20.2697+-0.3275 ? 20.4108+-0.3703 ? to-int32-boolean 25.0076+-0.1309 ? 25.2031+-0.6102 ? undefined-property-access 586.5524+-3.5528 ? 594.8389+-13.0704 ? might be 1.0141x slower undefined-test 4.9396+-0.1152 ? 4.9655+-0.1334 ? unprofiled-licm 34.9355+-0.6572 34.6259+-0.9224 weird-inlining-const-prop 3.3925+-0.2007 ? 3.4482+-0.1229 ? might be 1.0164x slower <arithmetic> 30.5943+-0.1601 ? 30.6418+-0.1686 ? might be 1.0016x slower <geometric> * 13.5852+-0.0523 ? 13.6146+-0.0772 ? might be 1.0022x slower <harmonic> 6.7466+-0.1351 ? 6.7761+-0.0829 ? might be 1.0044x slower Baseline GCDontDropLocks AsmBench: bigfib.cpp 885.9561+-14.4322 885.2551+-10.2143 cray.c 939.0995+-19.5729 937.8809+-9.9572 dry.c 1036.8992+-49.4114 ? 1040.2014+-52.5562 ? FloatMM.c 1300.5830+-1.2492 ? 1301.7482+-4.2456 ? gcc-loops.cpp 8243.2223+-26.0528 8239.2985+-37.6850 n-body.c 2461.7712+-5.4009 2461.5670+-2.6966 Quicksort.c 716.7245+-4.6225 709.4655+-15.1560 might be 1.0102x faster stepanov_container.cpp 6126.7295+-52.5106 ? 6141.3320+-143.1878 ? Towers.c 604.7589+-1.0772 ? 604.8128+-2.1064 ? <arithmetic> 2479.5271+-8.2109 ? 2480.1735+-10.5904 ? might be 1.0003x slower <geometric> * 1577.3336+-5.9145 1576.2140+-6.6186 might be 1.0007x faster <harmonic> 1173.8192+-4.9787 1171.9223+-8.9496 might be 1.0016x faster Baseline GCDontDropLocks CompressionBench: huffman 985.9033+-6.2595 ? 994.1664+-5.1978 ? arithmetic-simple 757.3226+-4.5343 756.6260+-4.4654 arithmetic-precise 583.3495+-0.7610 580.8860+-1.9744 arithmetic-complex-precise 579.1113+-5.5740 ? 582.7550+-6.9453 ? arithmetic-precise-order-0 876.9205+-17.1287 872.4954+-13.8249 arithmetic-precise-order-1 648.0650+-37.3673 635.1788+-3.8598 might be 1.0203x faster arithmetic-precise-order-2 692.7225+-2.0392 688.6235+-3.1584 arithmetic-simple-order-1 774.2105+-1.9221 ? 775.4611+-2.0768 ? arithmetic-simple-order-2 865.3110+-11.6704 860.4604+-8.5941 lz-string 648.7929+-32.9223 636.9789+-28.2791 might be 1.0185x faster <arithmetic> 741.1709+-3.7991 738.3632+-2.2673 might be 1.0038x faster <geometric> * 730.2445+-4.4793 727.0790+-2.4987 might be 1.0044x faster <harmonic> 719.7312+-5.0940 716.3110+-2.6989 might be 1.0048x faster Baseline GCDontDropLocks All benchmarks: <arithmetic> 187.1217+-0.5054 ? 187.3061+-0.4097 ? might be 1.0010x slower <geometric> 23.1686+-0.0660 ? 23.2056+-0.1036 ? might be 1.0016x slower <harmonic> 5.8685+-0.0738 ? 5.8843+-0.0394 ? might be 1.0027x slower Baseline GCDontDropLocks Geomean of preferred means: <scaled-result> 119.7111+-0.2297 ? 119.7625+-0.3776 ? might be 1.0004x slower
Filip Pizlo
Comment 11
2015-02-10 13:49:20 PST
Comment on
attachment 246339
[details]
Patch for Review View in context:
https://bugs.webkit.org/attachment.cgi?id=246339&action=review
> Source/JavaScriptCore/dfg/DFGPlan.cpp:387 > - > + > + if (FTL::canCompile(dfg) == FTL::CannotCompile) { > + finalizer = std::make_unique<FailedFinalizer>(*this); > + return FailPath; > + } > +
Maybe it's even better to do this before the LLVM initialization step? Perhaps just before the dumpAndVerifyGraph(dfg, "Graph jump before FTL lowering:").
Michael Saboff
Comment 12
2015-02-10 13:54:03 PST
> Maybe it's even better to do this before the LLVM initialization step? > Perhaps just before the dumpAndVerifyGraph(dfg, "Graph jump before FTL > lowering:").
I moved it as you suggested.
Michael Saboff
Comment 13
2015-02-10 13:59:55 PST
Committed
r179882
: <
http://trac.webkit.org/changeset/179882
>
Cody A. Taylor
Comment 14
2015-02-11 06:31:23 PST
***
Bug 141042
has been marked as a duplicate of this bug. ***
Cody A. Taylor
Comment 15
2015-04-10 07:41:11 PDT
I still see the linked application crash with Safari 8.0.4 on OS X Yosemite 10.10.2. Is it expected that this fixed is in Safari 8.0.4?
Michael Saboff
Comment 16
2015-04-10 10:24:52 PDT
(In reply to
comment #15
)
> I still see the linked application crash with Safari 8.0.4 on OS X Yosemite > 10.10.2. > > Is it expected that this fixed is in Safari 8.0.4?
This fix is not in 8.0.4 because we missed the deadline. It should be in the next Safari update/release.
Cody A. Taylor
Comment 17
2015-04-27 11:02:23 PDT
***
Bug 141042
has been marked as a duplicate of this bug. ***
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