This'll be fun.
Created attachment 238816 [details] it begins
Created attachment 238823 [details] more
Created attachment 238826 [details] it is written
Created attachment 238829 [details] it compiles!
Created attachment 238903 [details] it's getting real This is now allowing allocation sinking in raytrace.
Attachment 238903 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/dfg/DFGSetLocalSinkingPhase.cpp:89: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSetLocalSinkingPhase.cpp:93: Missing space after , [whitespace/comma] [3] ERROR: Source/JavaScriptCore/dfg/DFGSetLocalSinkingPhase.cpp:99: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSetLocalSinkingPhase.cpp:154: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSetLocalSinkingPhase.cpp:163: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSetLocalSinkingPhase.cpp:303: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGSetLocalSinkingPhase.cpp:329: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h:25: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h:41: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h:42: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h:43: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h:44: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h:45: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] Total errors found: 13 in 26 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 238928 [details] it runs more things
Comment on attachment 238928 [details] it runs more things View in context: https://bugs.webkit.org/attachment.cgi?id=238928&action=review > Source/JavaScriptCore/dfg/DFGClobberSet.h:108 > + mutable bool m_result; mmmmmmmmmmmutable > Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h:105 > + m_read(virtualRegisterForArgument(i)); a quick question - i'm totally out of date with the behaviour of the dfg - what happens with captured arguments that have been moved? Also, what happens if i put captured arguments into the activation - so they become GetFromScope > Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h:145 > + const ReadFunctor& m_read; > + const WriteFunctor& m_write; > + const DefFunctor& m_def; I don't like these names - I think it would be clearer if you actually name them m_readFunctor or some such
(In reply to comment #8) > (From update of attachment 238928 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=238928&action=review > > > Source/JavaScriptCore/dfg/DFGClobberSet.h:108 > > + mutable bool m_result; > > mmmmmmmmmmmutable > > > Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h:105 > > + m_read(virtualRegisterForArgument(i)); > > a quick question - i'm totally out of date with the behaviour of the dfg - what happens with captured arguments that have been moved? What do you mean by moved? > Also, what happens if i put captured arguments into the activation - so they become GetFromScope Last I checked there was the whole SlowArguments thing. > > > Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h:145 > > + const ReadFunctor& m_read; > > + const WriteFunctor& m_write; > > + const DefFunctor& m_def; > > I don't like these names - I think it would be clearer if you actually name them m_readFunctor or some such read/write/def as opposed to readFunctor/writeFunctor/defFunctor is what clobberize() has always used. I think it's better for the names of these functions to be a verb.
Created attachment 238983 [details] slightly different approach
Created attachment 238991 [details] better This includes the code for https://bugs.webkit.org/show_bug.cgi?id=137242. This should be a much saner approach.
Wow. 2% speed-up on Octane because of a tremendous win on Raytrace, as expected. Also a big win on AsmBench. But then there's a regression on SunSpider and CompressionBench, and I'm sort of not sure why. I'll need to verify these results. It's probably good enough to land. Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on oldmac (MacPro4,1). VMs tested: "TipOfTree" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (r174225) "PutLocalSink" at /Volumes/Data/fromMiniMe/primary/OpenSource/WebKitBuild/Release/jsc (r174225) 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 PutLocalSink SunSpider: 3d-cube 8.0375+-0.1264 ? 8.0461+-0.1806 ? 3d-morph 9.7625+-0.0890 9.6490+-0.0909 might be 1.0118x faster 3d-raytrace 9.7220+-0.1254 ? 9.7865+-0.2430 ? access-binary-trees 2.9493+-0.1175 ? 2.9830+-0.1403 ? might be 1.0114x slower access-fannkuch 9.5824+-0.1100 ? 9.6967+-0.1534 ? might be 1.0119x slower access-nbody 4.7216+-0.1084 ? 4.7677+-0.0866 ? access-nsieve 5.6322+-0.0498 5.5173+-0.0954 might be 1.0208x faster bitops-3bit-bits-in-byte 2.0195+-0.0437 ? 2.0346+-0.0336 ? bitops-bits-in-byte 6.8996+-0.1632 ? 7.0101+-0.0960 ? might be 1.0160x slower bitops-bitwise-and 3.3562+-0.0120 ? 3.3866+-0.0240 ? bitops-nsieve-bits 5.8123+-0.1191 ? 5.8406+-0.0267 ? controlflow-recursive 3.0934+-0.0115 ? 3.1336+-0.0392 ? might be 1.0130x slower crypto-aes 6.2886+-0.1243 ? 6.3477+-0.0428 ? crypto-md5 3.6616+-0.0694 ? 3.7114+-0.0779 ? might be 1.0136x slower crypto-sha1 3.8406+-0.0196 ? 3.9175+-0.0764 ? might be 1.0200x slower date-format-tofte 13.1297+-0.2357 12.9888+-0.1922 might be 1.0109x faster date-format-xparb 8.3951+-0.2125 8.1937+-0.1587 might be 1.0246x faster math-cordic 4.8265+-0.0447 4.8107+-0.0486 math-partial-sums 10.6298+-0.1045 ? 10.6470+-0.1428 ? math-spectral-norm 3.2342+-0.0561 ? 3.2474+-0.0508 ? regexp-dna 11.8535+-0.0513 ? 12.0653+-0.2202 ? might be 1.0179x slower string-base64 6.5574+-0.0902 ? 6.5656+-0.0287 ? string-fasta 10.4286+-0.1458 10.3933+-0.2569 string-tagcloud 15.0290+-0.1655 ? 15.1302+-0.1355 ? string-unpack-code 31.5492+-0.2459 ! 33.4525+-1.2767 ! definitely 1.0603x slower string-validate-input 7.3988+-0.1496 ? 7.5411+-0.0765 ? might be 1.0192x slower <arithmetic> * 8.0158+-0.0252 ! 8.1101+-0.0650 ! definitely 1.0118x slower <geometric> 6.6214+-0.0212 ? 6.6642+-0.0283 ? might be 1.0065x slower <harmonic> 5.5777+-0.0238 ? 5.6137+-0.0196 ? might be 1.0064x slower TipOfTree PutLocalSink LongSpider: 3d-cube 1395.2070+-12.9071 1387.8363+-10.8838 3d-morph 2279.8200+-6.4583 2278.5280+-8.1088 3d-raytrace 1293.4965+-19.0228 1287.7495+-7.7043 access-binary-trees 1628.0865+-5.4993 1625.7843+-5.5841 access-fannkuch 522.7480+-12.7587 ? 528.3347+-20.3430 ? might be 1.0107x slower access-nbody 1223.3409+-1.1760 ? 1223.6287+-4.2173 ? access-nsieve 1538.3647+-3.6213 1536.4247+-5.6844 bitops-3bit-bits-in-byte 57.1924+-0.6823 ? 57.6049+-0.5589 ? bitops-bits-in-byte 384.5490+-11.6905 376.4255+-6.4065 might be 1.0216x faster bitops-nsieve-bits 1141.7739+-1.9863 ? 1150.9476+-7.3881 ? controlflow-recursive 870.5566+-1.5206 869.7130+-1.3920 crypto-aes 1100.8203+-5.6821 ? 1103.9043+-4.0001 ? crypto-md5 961.3815+-4.0116 961.3782+-4.1599 crypto-sha1 1204.7223+-3.4645 ^ 1163.0105+-11.4018 ^ definitely 1.0359x faster date-format-tofte 1149.1792+-10.2197 ? 1167.2183+-10.4733 ? might be 1.0157x slower date-format-xparb 1175.1964+-11.3258 ? 1219.2829+-141.5483 ? might be 1.0375x slower math-cordic 815.2417+-3.9016 813.4804+-0.9454 math-partial-sums 1318.9708+-4.2953 ? 1337.4242+-29.8783 ? might be 1.0140x slower math-spectral-norm 1300.7848+-1.9529 1299.6128+-2.3694 string-base64 573.8923+-3.5138 571.7122+-2.9024 string-fasta 706.1168+-5.8596 705.4448+-6.6123 string-tagcloud 358.5563+-1.0827 ? 365.6825+-7.4426 ? might be 1.0199x slower <arithmetic> 1045.4544+-2.0210 ? 1046.8695+-6.6075 ? might be 1.0014x slower <geometric> * 872.9867+-2.0795 ? 874.2492+-5.3086 ? might be 1.0014x slower <harmonic> 533.4850+-2.5238 ? 535.4293+-3.4760 ? might be 1.0036x slower TipOfTree PutLocalSink V8Spider: crypto 83.6087+-0.9985 82.7563+-0.5410 might be 1.0103x faster deltablue 119.8343+-0.9417 119.4505+-0.8887 earley-boyer 73.3476+-1.7161 71.4194+-2.0498 might be 1.0270x faster raytrace 44.1761+-1.0614 ? 45.1481+-0.9010 ? might be 1.0220x slower regexp 105.4157+-0.3850 ! 106.8053+-0.1847 ! definitely 1.0132x slower richards 112.1943+-1.0281 ? 112.6431+-0.7042 ? splay 49.8605+-1.2182 ? 51.0800+-0.9879 ? might be 1.0245x slower <arithmetic> 84.0625+-0.5979 ? 84.1861+-0.2666 ? might be 1.0015x slower <geometric> * 78.9588+-0.7326 ? 79.2169+-0.3180 ? might be 1.0033x slower <harmonic> 73.6464+-0.8425 ? 74.1183+-0.4248 ? might be 1.0064x slower TipOfTree PutLocalSink Octane: encrypt 0.40642+-0.00539 ^ 0.38971+-0.00415 ^ definitely 1.0429x faster decrypt 7.17428+-0.02471 ^ 6.82313+-0.02210 ^ definitely 1.0515x faster deltablue x2 0.32356+-0.00059 ^ 0.32120+-0.00145 ^ definitely 1.0073x faster earley 1.35665+-0.01112 1.34826+-0.00324 boyer 10.07429+-0.07817 ^ 9.87321+-0.07221 ^ definitely 1.0204x faster navier-stokes x2 7.75663+-0.00730 ? 7.76416+-0.01272 ? raytrace x2 2.53314+-0.02206 ^ 1.98765+-0.01142 ^ definitely 1.2744x faster richards x2 0.20099+-0.00206 ? 0.20269+-0.00384 ? splay x2 0.60640+-0.00312 0.60474+-0.00450 regexp x2 60.52546+-0.41683 ! 61.54964+-0.29370 ! definitely 1.0169x slower pdfjs x2 84.49160+-0.45755 ! 85.62928+-0.26531 ! definitely 1.0135x slower mandreel x2 91.95326+-0.30973 ^ 89.09704+-0.24156 ^ definitely 1.0321x faster gbemu x2 70.40447+-1.14746 70.39369+-1.28096 closure 0.90335+-0.00244 ! 0.93227+-0.02362 ! definitely 1.0320x slower jquery 11.26889+-0.01984 ! 11.43269+-0.02978 ! definitely 1.0145x slower box2d x2 23.25676+-0.41223 22.91602+-0.13719 might be 1.0149x faster zlib x2 787.36457+-2.87383 781.85160+-3.68591 typescript x2 1224.45365+-4.94409 ? 1231.24618+-7.91881 ? <arithmetic> 157.96416+-0.52502 157.93090+-0.49607 might be 1.0002x faster <geometric> * 11.77374+-0.01906 ^ 11.54268+-0.03552 ^ definitely 1.0200x faster <harmonic> 1.18540+-0.00404 1.17277+-0.01137 might be 1.0108x faster TipOfTree PutLocalSink Kraken: ai-astar 530.529+-1.326 ? 530.938+-1.710 ? audio-beat-detection 189.287+-4.227 ! 199.380+-2.480 ! definitely 1.0533x slower audio-dft 254.313+-2.090 ? 260.222+-11.494 ? might be 1.0232x slower audio-fft 130.499+-0.694 ? 131.247+-0.476 ? audio-oscillator 375.881+-1.246 ? 376.092+-1.133 ? imaging-darkroom 288.255+-1.848 286.281+-1.447 imaging-desaturate 113.815+-1.853 ? 113.991+-2.551 ? imaging-gaussian-blur 184.172+-0.439 183.864+-1.945 json-parse-financial 81.998+-0.937 ! 85.306+-1.400 ! definitely 1.0403x slower json-stringify-tinderbox 99.310+-0.925 ? 100.335+-0.510 ? might be 1.0103x slower stanford-crypto-aes 99.732+-0.933 ? 100.153+-0.860 ? stanford-crypto-ccm 96.915+-0.906 91.648+-10.947 might be 1.0575x faster stanford-crypto-pbkdf2 272.993+-2.413 ? 276.242+-4.412 ? might be 1.0119x slower stanford-crypto-sha256-iterative 107.059+-0.732 ? 107.516+-1.246 ? <arithmetic> * 201.768+-0.519 ! 203.087+-0.563 ! definitely 1.0065x slower <geometric> 170.401+-0.338 ? 171.413+-1.078 ? might be 1.0059x slower <harmonic> 147.788+-0.207 ? 148.365+-1.969 ? might be 1.0039x slower TipOfTree PutLocalSink JSRegress: abs-boolean 4.4836+-0.1422 4.4650+-0.0846 adapt-to-double-divide 20.4083+-0.3318 ? 20.4725+-0.4288 ? aliased-arguments-getbyval 1.1741+-0.0179 ? 1.2030+-0.0364 ? might be 1.0246x slower allocate-big-object 3.8801+-0.1162 ? 4.0445+-0.0696 ? might be 1.0424x slower arity-mismatch-inlining 1.1425+-0.0138 ? 1.1521+-0.0186 ? array-access-polymorphic-structure 10.9283+-0.1376 ? 11.0759+-0.1088 ? might be 1.0135x slower array-nonarray-polymorhpic-access 61.0306+-0.2757 60.9854+-1.1495 array-prototype-every 121.9843+-1.7254 ? 124.7555+-2.5857 ? might be 1.0227x slower array-prototype-forEach 121.5375+-2.3519 ? 122.0131+-1.0966 ? array-prototype-map 145.4501+-0.6546 ? 147.4444+-2.4995 ? might be 1.0137x slower array-prototype-some 120.2097+-0.5922 ? 123.6385+-5.6919 ? might be 1.0285x slower array-splice-contiguous 68.7650+-0.6598 68.2942+-0.6264 array-with-double-add 6.6000+-0.0562 6.5904+-0.0677 array-with-double-increment 4.7726+-0.0442 ? 4.7758+-0.0551 ? array-with-double-mul-add 8.4269+-0.1081 8.3258+-0.1722 might be 1.0121x faster array-with-double-sum 5.0363+-0.0474 ? 5.1149+-0.0597 ? might be 1.0156x slower array-with-int32-add-sub 11.2762+-0.2225 ? 11.3037+-0.1733 ? array-with-int32-or-double-sum 5.2192+-0.0162 5.1918+-0.0737 ArrayBuffer-DataView-alloc-large-long-lived 57.4394+-0.9837 ? 58.7526+-0.8771 ? might be 1.0229x slower ArrayBuffer-DataView-alloc-long-lived 23.1079+-0.3782 ! 24.3758+-0.6677 ! definitely 1.0549x slower ArrayBuffer-Int32Array-byteOffset 5.4712+-0.0724 5.4476+-0.0115 ArrayBuffer-Int8Array-alloc-large-long-lived 61.1474+-2.0334 ? 63.7353+-1.0256 ? might be 1.0423x slower ArrayBuffer-Int8Array-alloc-long-lived-buffer 39.2977+-1.0576 ? 40.0468+-0.5115 ? might be 1.0191x slower ArrayBuffer-Int8Array-alloc-long-lived 21.7593+-0.3732 ! 23.3800+-0.5392 ! definitely 1.0745x slower ArrayBuffer-Int8Array-alloc 18.3818+-0.4697 ! 19.7210+-0.5349 ! definitely 1.0729x slower asmjs_bool_bug 10.3230+-0.1524 ? 10.3924+-0.1522 ? assign-custom-setter-polymorphic 5.0320+-0.1362 ? 5.0530+-0.1761 ? assign-custom-setter 6.7631+-0.0503 ? 6.7874+-0.1621 ? basic-set 15.4467+-0.1319 ? 15.8560+-0.5077 ? might be 1.0265x slower big-int-mul 6.7684+-0.1249 ? 6.8609+-0.1186 ? might be 1.0137x slower boolean-test 4.9744+-0.0893 4.9497+-0.0495 branch-fold 5.4201+-0.0601 5.3993+-0.0911 by-val-generic 12.9619+-0.3008 12.9048+-0.2793 call-spread-apply 20.8643+-0.1757 ? 21.2384+-0.6630 ? might be 1.0179x slower call-spread-call 9.1102+-0.1687 8.9875+-0.0469 might be 1.0137x faster captured-assignments 0.6139+-0.0055 ? 0.6162+-0.0042 ? cast-int-to-double 9.5512+-0.0868 ? 9.6724+-0.1460 ? might be 1.0127x slower cell-argument 11.2406+-0.2816 11.1732+-0.2333 cfg-simplify 4.2650+-0.0109 ? 4.2968+-0.0333 ? chain-getter-access 13.7425+-0.2860 ? 13.7826+-0.2177 ? cmpeq-obj-to-obj-other 13.7468+-0.4113 13.5193+-0.3031 might be 1.0168x faster constant-test 8.9705+-0.2024 ? 9.0677+-0.0368 ? might be 1.0108x slower DataView-custom-properties 65.7047+-0.9374 ! 68.2561+-1.4540 ! definitely 1.0388x slower delay-tear-off-arguments-strictmode 3.7739+-0.0572 ? 3.7938+-0.0318 ? destructuring-arguments 9.1611+-0.1673 9.1475+-0.1373 destructuring-swap 9.1839+-0.0851 9.1374+-0.1084 direct-arguments-getbyval 1.2930+-0.0277 ? 1.3139+-0.0267 ? might be 1.0162x slower div-boolean-double 6.6388+-0.0352 6.5550+-0.1653 might be 1.0128x faster div-boolean 11.8409+-0.1247 11.7714+-0.1647 double-get-by-val-out-of-bounds 6.7495+-0.1504 ? 7.0024+-0.3183 ? might be 1.0375x slower double-pollution-getbyval 11.5356+-0.1379 11.5020+-0.2164 double-pollution-putbyoffset 6.3817+-0.1274 6.3615+-0.1717 double-to-int32-typed-array-no-inline 3.2813+-0.0512 3.2593+-0.0630 double-to-int32-typed-array 2.6712+-0.0631 2.6613+-0.0682 double-to-uint32-typed-array-no-inline 3.3429+-0.0616 3.3084+-0.0813 might be 1.0104x faster double-to-uint32-typed-array 2.8814+-0.0487 ? 2.9148+-0.0692 ? might be 1.0116x slower elidable-new-object-dag 63.0408+-0.7877 ? 63.5194+-1.8957 ? elidable-new-object-roflcopter 241.8535+-1.7415 ? 248.9102+-6.5529 ? might be 1.0292x slower elidable-new-object-tree 71.5932+-0.7162 ? 71.8291+-1.8671 ? empty-string-plus-int 8.0030+-0.0369 ! 8.3595+-0.1500 ! definitely 1.0445x slower emscripten-cube2hash 53.3261+-0.5643 ? 53.5196+-0.5680 ? external-arguments-getbyval 2.1694+-0.0210 ? 2.1855+-0.0290 ? external-arguments-putbyval 3.1081+-0.0548 ? 3.1305+-0.0459 ? fixed-typed-array-storage-var-index 1.6306+-0.0177 ? 1.6660+-0.0378 ? might be 1.0217x slower fixed-typed-array-storage 1.2256+-0.0221 ? 1.2556+-0.0566 ? might be 1.0245x slower Float32Array-matrix-mult 6.7458+-0.0584 ? 6.7814+-0.0564 ? Float32Array-to-Float64Array-set 91.6375+-1.6777 ? 92.2727+-1.4533 ? Float64Array-alloc-long-lived 102.2153+-0.4961 ? 103.2623+-0.7992 ? might be 1.0102x slower Float64Array-to-Int16Array-set 115.5170+-0.3154 ? 115.7315+-0.5616 ? fold-double-to-int 19.9392+-0.1884 ? 20.0208+-0.3355 ? fold-get-by-id-to-multi-get-by-offset-rare-int 24.6234+-0.4373 23.8928+-0.4702 might be 1.0306x faster fold-get-by-id-to-multi-get-by-offset 23.1231+-0.4750 22.6472+-0.4518 might be 1.0210x faster fold-multi-get-by-offset-to-get-by-offset 17.8785+-0.1777 17.5278+-0.7393 might be 1.0200x faster fold-multi-get-by-offset-to-poly-get-by-offset 18.0865+-0.2099 ^ 17.4095+-0.1398 ^ definitely 1.0389x faster fold-multi-put-by-offset-to-poly-put-by-offset 18.6677+-0.9554 18.1070+-0.5083 might be 1.0310x faster fold-multi-put-by-offset-to-put-by-offset 16.3385+-0.0862 ^ 15.7457+-0.2789 ^ definitely 1.0376x faster fold-multi-put-by-offset-to-replace-or-transition-put-by-offset 23.4566+-1.6513 22.5210+-0.5847 might be 1.0415x faster fold-put-by-id-to-multi-put-by-offset 23.7290+-0.4070 22.9810+-0.4511 might be 1.0325x faster fold-put-structure 17.2961+-0.2436 ^ 16.5260+-0.0810 ^ definitely 1.0466x faster for-of-iterate-array-entries 8.5368+-0.1523 ? 8.6036+-0.1739 ? for-of-iterate-array-keys 4.0226+-0.1177 4.0150+-0.0615 for-of-iterate-array-values 3.3495+-0.0714 ? 3.4299+-0.0865 ? might be 1.0240x slower fround 23.9205+-0.2885 23.8842+-0.3121 ftl-library-inlining-dataview 115.7030+-2.3449 ^ 109.2030+-0.5038 ^ definitely 1.0595x faster ftl-library-inlining 117.9329+-2.4829 117.8029+-2.6721 function-dot-apply 2.5385+-0.0966 2.5129+-0.0546 might be 1.0102x faster function-test 5.3416+-0.0430 ? 5.3691+-0.1027 ? function-with-eval 106.6779+-1.4045 ? 107.5798+-0.8318 ? gcse-poly-get-less-obvious 29.3077+-0.2306 29.2606+-0.5643 gcse-poly-get 29.7911+-0.2872 29.7078+-0.1664 gcse 7.6956+-0.0466 ? 7.6985+-0.0412 ? get-by-id-bimorphic-check-structure-elimination-simple 3.7765+-0.0454 ? 3.8395+-0.0527 ? might be 1.0167x slower get-by-id-bimorphic-check-structure-elimination 9.7909+-0.1419 9.7771+-0.2257 get-by-id-chain-from-try-block 7.9877+-0.1998 ? 8.0298+-0.1153 ? get-by-id-check-structure-elimination 8.8942+-0.1005 ? 8.9187+-0.1241 ? get-by-id-proto-or-self 25.3542+-2.1157 25.1075+-1.8095 get-by-id-quadmorphic-check-structure-elimination-simple 4.6045+-0.0414 4.5876+-0.0607 get-by-id-self-or-proto 24.2843+-0.5256 ? 25.8223+-1.5392 ? might be 1.0633x slower get-by-val-out-of-bounds 6.6788+-0.0739 ? 6.8077+-0.0699 ? might be 1.0193x slower get_callee_monomorphic 5.8576+-0.2670 ? 6.0216+-0.1238 ? might be 1.0280x slower get_callee_polymorphic 4.9295+-0.1020 ? 4.9609+-0.1233 ? getter-no-activation 6.8763+-0.0599 6.8737+-0.0852 getter-richards 152.6164+-7.3798 ? 154.6352+-7.8504 ? might be 1.0132x slower getter 7.5853+-0.1179 ? 7.6901+-0.0952 ? might be 1.0138x slower global-var-const-infer-fire-from-opt 1.1723+-0.0245 ? 1.1850+-0.0176 ? might be 1.0109x slower global-var-const-infer 1.2476+-0.0246 ? 1.2521+-0.0265 ? HashMap-put-get-iterate-keys 40.8246+-0.3767 40.6982+-0.8830 HashMap-put-get-iterate 40.9416+-0.8524 39.9241+-0.3872 might be 1.0255x faster HashMap-string-put-get-iterate 38.5650+-0.7476 ? 39.4292+-0.4653 ? might be 1.0224x slower hoist-make-rope 14.7525+-1.9844 13.8047+-1.3201 might be 1.0687x faster hoist-poly-check-structure-effectful-loop 7.6200+-0.2666 7.6061+-0.1272 hoist-poly-check-structure 5.7345+-0.0838 ? 5.7645+-0.0574 ? imul-double-only 9.8451+-0.1774 ? 10.2891+-0.5421 ? might be 1.0451x slower imul-int-only 13.1496+-0.3708 12.9045+-0.3720 might be 1.0190x faster imul-mixed 9.9644+-0.5920 9.3471+-0.6640 might be 1.0660x faster in-four-cases 28.4803+-0.9682 28.2992+-0.4537 in-one-case-false 14.8944+-0.3362 14.8288+-0.1129 in-one-case-true 14.9668+-0.1093 14.9575+-0.3855 in-two-cases 15.5769+-0.3042 15.4682+-0.0860 indexed-properties-in-objects 4.5035+-0.0792 4.4934+-0.0631 infer-closure-const-then-mov-no-inline 5.1448+-0.1723 5.1395+-0.1744 infer-closure-const-then-mov 29.5859+-0.1301 29.5055+-0.4318 infer-closure-const-then-put-to-scope-no-inline 17.5585+-0.1438 ? 17.6306+-0.1288 ? infer-closure-const-then-put-to-scope 33.3217+-0.1339 ? 33.4908+-0.2991 ? infer-closure-const-then-reenter-no-inline 77.1855+-0.2127 ? 77.5270+-0.3015 ? infer-closure-const-then-reenter 33.5004+-0.1494 ? 33.5604+-0.1555 ? infer-constant-global-property 5.5315+-0.0315 ? 5.5604+-0.0591 ? infer-constant-property 3.7983+-0.0704 ? 3.8304+-0.0635 ? infer-one-time-closure-ten-vars 16.7059+-0.4264 16.5326+-0.1756 might be 1.0105x faster infer-one-time-closure-two-vars 16.0446+-0.1591 15.8617+-0.2411 might be 1.0115x faster infer-one-time-closure 15.9530+-0.2361 15.6367+-0.2456 might be 1.0202x faster infer-one-time-deep-closure 28.4680+-0.3962 28.3368+-0.2079 inline-arguments-access 2.4018+-0.0488 ? 2.4209+-0.0453 ? inline-arguments-aliased-access 2.7249+-0.0854 ? 2.7650+-0.0807 ? might be 1.0147x slower inline-arguments-local-escape 20.5462+-0.3971 ? 20.8547+-0.1991 ? might be 1.0150x slower inline-get-scoped-var 6.6929+-0.0738 6.6221+-0.1279 might be 1.0107x faster inlined-put-by-id-transition 16.0681+-0.1741 15.8001+-0.5245 might be 1.0170x faster int-or-other-abs-then-get-by-val 8.1700+-0.1049 8.1517+-0.0614 int-or-other-abs-zero-then-get-by-val 30.3252+-0.2656 30.1698+-0.2931 int-or-other-add-then-get-by-val 6.9668+-0.0843 6.9222+-0.1278 int-or-other-add 9.1660+-0.1382 ? 9.1706+-0.1443 ? int-or-other-div-then-get-by-val 6.1233+-0.0630 6.1016+-0.0541 int-or-other-max-then-get-by-val 7.7828+-0.3679 7.5603+-0.1251 might be 1.0294x faster int-or-other-min-then-get-by-val 6.2184+-0.0556 ? 6.2310+-0.0830 ? int-or-other-mod-then-get-by-val 6.0474+-0.0357 6.0257+-0.1146 int-or-other-mul-then-get-by-val 5.8300+-0.1237 5.8153+-0.0303 int-or-other-neg-then-get-by-val 7.3465+-0.1410 7.3000+-0.1641 int-or-other-neg-zero-then-get-by-val 30.3920+-0.1380 ? 30.4924+-0.4085 ? int-or-other-sub-then-get-by-val 6.9756+-0.1303 6.9353+-0.1347 int-or-other-sub 6.0142+-0.1961 ? 6.1503+-0.0334 ? might be 1.0226x slower int-overflow-local 6.7642+-0.1413 ? 6.8440+-0.1659 ? might be 1.0118x slower Int16Array-alloc-long-lived 73.2496+-1.0032 73.1989+-0.5509 Int16Array-bubble-sort-with-byteLength 45.0249+-0.6489 44.4467+-0.2454 might be 1.0130x faster Int16Array-bubble-sort 43.1863+-0.1048 ? 43.6127+-0.5418 ? Int16Array-load-int-mul 2.1979+-0.0444 ? 2.2158+-0.0507 ? Int16Array-to-Int32Array-set 83.9347+-1.4090 ? 84.6241+-1.2826 ? Int32Array-alloc-large 42.8000+-1.6346 42.7861+-1.9422 Int32Array-alloc-long-lived 81.8606+-0.5959 81.7326+-1.1474 Int32Array-alloc 4.8693+-0.0492 4.8364+-0.1824 Int32Array-Int8Array-view-alloc 11.3857+-0.2616 ! 12.1136+-0.1776 ! definitely 1.0639x slower int52-spill 10.1145+-0.1064 ? 10.3122+-0.2623 ? might be 1.0195x slower Int8Array-alloc-long-lived 67.5031+-0.8910 67.4471+-1.0539 Int8Array-load-with-byteLength 5.5890+-0.0571 ? 5.5941+-0.0656 ? Int8Array-load 5.5468+-0.0781 ? 5.5968+-0.0689 ? integer-divide 17.0052+-0.2015 ? 17.1349+-0.2645 ? integer-modulo 3.1247+-0.2970 ? 3.1972+-0.2861 ? might be 1.0232x slower large-int-captured 11.1353+-0.2908 ? 11.4019+-0.2432 ? might be 1.0239x slower large-int-neg 24.3664+-0.2934 ? 24.4308+-0.1494 ? large-int 21.5812+-0.1929 ? 21.6598+-0.2988 ? logical-not 6.9758+-0.0556 ? 7.2405+-0.2190 ? might be 1.0379x slower lots-of-fields 16.1184+-0.1119 16.1113+-0.1007 make-indexed-storage 4.4699+-0.2787 ? 4.7961+-0.1377 ? might be 1.0730x slower make-rope-cse 6.2650+-0.0628 ? 6.3111+-0.0862 ? marsaglia-larger-ints 60.4432+-0.5849 ! 64.1210+-0.4854 ! definitely 1.0608x slower marsaglia-osr-entry 31.9141+-0.4579 31.6181+-0.4615 max-boolean 4.0362+-0.3700 3.8654+-0.0636 might be 1.0442x faster method-on-number 28.3729+-1.2919 ? 29.2640+-0.9480 ? might be 1.0314x slower min-boolean 3.7749+-0.0887 ? 3.8064+-0.0504 ? minus-boolean-double 4.9258+-0.0452 ? 4.9698+-0.0147 ? minus-boolean 3.7858+-0.0661 ? 3.8148+-0.0258 ? misc-strict-eq 58.2067+-0.8427 ? 58.3632+-0.8584 ? mod-boolean-double 13.9601+-0.1907 ? 13.9615+-0.1282 ? mod-boolean 10.7300+-0.1268 10.6847+-0.2477 mul-boolean-double 5.7592+-0.0271 ? 5.7722+-0.0285 ? mul-boolean 4.0940+-0.0602 ? 4.1216+-0.0113 ? neg-boolean 5.0640+-0.0547 5.0636+-0.0283 negative-zero-divide 0.4660+-0.0041 ? 0.4822+-0.0170 ? might be 1.0347x slower negative-zero-modulo 0.4624+-0.0034 ! 0.4726+-0.0030 ! definitely 1.0220x slower negative-zero-negate 0.4321+-0.0024 ! 0.4394+-0.0022 ! definitely 1.0168x slower nested-function-parsing 46.0711+-0.4500 45.8176+-0.1988 new-array-buffer-dead 4.2624+-0.1002 4.2499+-0.1013 new-array-buffer-push 10.6513+-0.0890 ? 10.6696+-0.3118 ? new-array-dead 14.7337+-0.2964 ? 14.8127+-0.2650 ? new-array-push 7.3298+-0.2200 ? 7.5193+-0.1705 ? might be 1.0258x slower number-test 4.8477+-0.0604 ? 4.8660+-0.0467 ? object-closure-call 9.3531+-0.1803 ? 9.4478+-0.1265 ? might be 1.0101x slower object-test 5.2103+-0.0595 ? 5.2984+-0.1663 ? might be 1.0169x slower obvious-sink-pathology-taken 209.1611+-2.0163 208.8765+-2.1720 obvious-sink-pathology 200.4086+-4.2908 199.2419+-0.8061 obviously-elidable-new-object 51.2263+-0.5797 ? 52.0683+-1.3935 ? might be 1.0164x slower plus-boolean-arith 3.8468+-0.0656 ? 3.8713+-0.0654 ? plus-boolean-double 4.9720+-0.0364 ? 4.9935+-0.0318 ? plus-boolean 3.7284+-0.0637 3.7013+-0.0508 poly-chain-access-different-prototypes-simple 4.5620+-0.0537 4.5434+-0.0563 poly-chain-access-different-prototypes 3.7746+-0.0551 3.7615+-0.0205 poly-chain-access-simpler 4.5244+-0.0566 ? 4.5444+-0.0697 ? poly-chain-access 3.2984+-0.4335 ? 3.3809+-0.3040 ? might be 1.0250x slower poly-stricteq 85.3973+-1.6788 84.3003+-0.1939 might be 1.0130x faster polymorphic-array-call 2.3637+-0.0313 ? 2.3863+-0.0381 ? polymorphic-get-by-id 4.9059+-0.0362 ? 4.9170+-0.0672 ? polymorphic-put-by-id 74.4146+-25.3722 ? 79.7898+-47.0354 ? might be 1.0722x slower polymorphic-structure 26.4555+-1.7997 26.2903+-1.5269 polyvariant-monomorphic-get-by-id 13.0865+-0.3640 12.9796+-0.4143 proto-getter-access 13.6796+-0.1839 ? 13.7382+-0.1424 ? put-by-id-replace-and-transition 12.9830+-0.2162 12.8879+-0.2671 put-by-id-slightly-polymorphic 4.1155+-0.0618 ? 4.1772+-0.0394 ? might be 1.0150x slower put-by-id 21.1279+-0.4370 ? 21.5806+-0.3607 ? might be 1.0214x slower put-by-val-direct 0.8050+-0.0010 ! 0.8159+-0.0026 ! definitely 1.0136x slower put-by-val-large-index-blank-indexing-type 10.3942+-0.2479 9.9355+-0.2352 might be 1.0462x faster put-by-val-machine-int 4.7923+-0.2555 ? 4.8284+-0.0978 ? rare-osr-exit-on-local 21.6075+-0.2433 ? 21.6197+-0.1068 ? register-pressure-from-osr 31.8002+-0.2143 31.6907+-0.4097 setter 7.6876+-0.0659 ? 7.7124+-0.0785 ? simple-activation-demo 35.1626+-0.0373 ! 35.3582+-0.0803 ! definitely 1.0056x slower simple-getter-access 20.1410+-0.2152 ? 20.3668+-0.1203 ? might be 1.0112x slower simple-poly-call-nested 21.7451+-0.4591 ? 21.8466+-0.6845 ? simple-poly-call 1.7496+-0.0347 ? 1.7530+-0.0214 ? sin-boolean 23.6221+-0.8974 ? 24.2232+-0.8688 ? might be 1.0254x slower sinkable-new-object-dag 95.7383+-1.0234 ? 96.6428+-1.0687 ? sinkable-new-object-taken 79.4953+-0.6728 79.0372+-2.9783 sinkable-new-object 54.8878+-1.6578 ? 55.1162+-1.3535 ? slow-array-profile-convergence 4.2805+-0.1518 4.2802+-0.1214 slow-convergence 5.0830+-0.0292 ? 5.0944+-0.0312 ? sparse-conditional 1.6507+-0.0504 1.6443+-0.0183 splice-to-remove 27.6777+-0.9257 ? 27.9076+-0.3822 ? string-char-code-at 23.5945+-0.1240 23.5803+-0.0872 string-concat-object 3.3155+-0.1344 3.2806+-0.0955 might be 1.0106x faster string-concat-pair-object 3.2028+-0.0922 3.1834+-0.0505 string-concat-pair-simple 18.6085+-0.4158 ? 18.8378+-0.4007 ? might be 1.0123x slower string-concat-simple 19.1068+-0.2977 ? 19.1179+-0.1410 ? string-cons-repeat 11.9024+-0.1452 ? 11.9950+-0.2203 ? string-cons-tower 10.9368+-0.0601 ? 11.2723+-0.4056 ? might be 1.0307x slower string-equality 26.6673+-0.2848 26.5566+-0.1632 string-get-by-val-big-char 11.5380+-0.3158 ? 12.0318+-0.2692 ? might be 1.0428x slower string-get-by-val-out-of-bounds-insane 6.4394+-0.2135 6.4274+-0.1707 string-get-by-val-out-of-bounds 8.0011+-0.1876 7.9738+-0.0799 string-get-by-val 5.6567+-0.0448 ? 5.6954+-0.0462 ? string-hash 3.1427+-0.0530 ? 3.1474+-0.0492 ? string-long-ident-equality 21.4320+-0.2419 ? 21.4421+-0.2406 ? string-repeat-arith 48.7305+-0.4458 ! 49.8230+-0.3007 ! definitely 1.0224x slower string-sub 96.2670+-0.9469 ? 97.0968+-0.9072 ? string-test 4.8658+-0.0638 4.8321+-0.0592 string-var-equality 52.2812+-0.1589 52.2456+-0.2050 structure-hoist-over-transitions 3.9223+-0.0941 ? 3.9471+-0.1392 ? substring-concat-weird 62.5198+-0.7140 ? 62.6710+-0.4655 ? substring-concat 65.6963+-0.3381 ? 65.8656+-0.6028 ? substring 73.9785+-0.1767 ? 74.7710+-0.8264 ? might be 1.0107x slower switch-char-constant 3.8459+-0.0326 ? 3.8786+-0.0510 ? switch-char 9.3674+-0.1151 9.3670+-0.1363 switch-constant 11.9442+-0.4000 ! 16.2518+-2.2199 ! definitely 1.3606x slower switch-string-basic-big-var 24.5665+-2.3352 ? 25.5165+-2.5044 ? might be 1.0387x slower switch-string-basic-big 26.8410+-2.7623 26.3771+-3.1604 might be 1.0176x faster switch-string-basic-var 33.5327+-0.6913 32.2789+-1.6204 might be 1.0388x faster switch-string-basic 29.0537+-0.3494 ? 29.4135+-0.4890 ? might be 1.0124x slower switch-string-big-length-tower-var 30.1313+-0.1149 ? 30.1648+-0.1317 ? switch-string-length-tower-var 24.1027+-0.1105 ? 24.3555+-0.4464 ? might be 1.0105x slower switch-string-length-tower 17.8802+-0.1380 17.7303+-0.1192 switch-string-short 17.7144+-0.2723 ? 17.8260+-0.0691 ? switch 19.3742+-0.1620 17.1014+-2.3226 might be 1.1329x faster tear-off-arguments-simple 2.5948+-0.0735 ? 2.6314+-0.0488 ? might be 1.0141x slower tear-off-arguments 4.1078+-0.0180 ? 4.1189+-0.0803 ? temporal-structure 20.5651+-0.2717 20.5529+-0.2154 to-int32-boolean 24.8319+-0.2677 ? 25.0665+-0.5040 ? undefined-test 5.0337+-0.0468 4.9941+-0.0619 unprofiled-licm 30.7004+-0.4629 ! 31.5710+-0.3137 ! definitely 1.0284x slower weird-inlining-const-prop 2.9589+-0.1059 ? 3.0392+-0.0384 ? might be 1.0271x slower <arithmetic> 24.3642+-0.1414 ? 24.5117+-0.1642 ? might be 1.0061x slower <geometric> * 11.9766+-0.0318 ? 12.0349+-0.0301 ? might be 1.0049x slower <harmonic> 5.9025+-0.0201 ! 5.9544+-0.0149 ! definitely 1.0088x slower TipOfTree PutLocalSink AsmBench: bigfib.cpp 794.3587+-3.7223 793.3438+-2.3014 cray.c 792.5867+-2.4435 ? 801.5517+-17.7625 ? might be 1.0113x slower dry.c 788.6799+-2.1216 ? 790.1557+-16.5137 ? FloatMM.c 1151.0216+-1.8634 1149.9484+-1.8483 gcc-loops.cpp 7533.8278+-18.3277 ^ 7086.1461+-15.2830 ^ definitely 1.0632x faster n-body.c 2035.7213+-2.3654 ^ 2017.9369+-7.7172 ^ definitely 1.0088x faster Quicksort.c 711.8525+-1.6207 ^ 701.8254+-3.8012 ^ definitely 1.0143x faster stepanov_container.cpp 5810.2185+-8.7377 ^ 5751.9154+-27.9677 ^ definitely 1.0101x faster Towers.c 472.0988+-2.1771 ^ 465.1057+-2.0910 ^ definitely 1.0150x faster <arithmetic> 2232.2629+-2.2375 ^ 2173.1032+-7.6397 ^ definitely 1.0272x faster <geometric> * 1371.0174+-1.7617 ^ 1356.0795+-6.9380 ^ definitely 1.0110x faster <harmonic> 1002.6273+-1.9044 996.7420+-5.5238 might be 1.0059x faster TipOfTree PutLocalSink CompressionBench: huffman 721.8922+-2.4994 ? 722.0678+-4.9314 ? arithmetic-simple 682.5204+-2.3997 ? 684.0263+-2.1909 ? arithmetic-precise 506.9364+-2.1375 ? 510.8844+-5.0998 ? arithmetic-complex-precise 504.8447+-1.5650 503.8185+-1.8638 arithmetic-precise-order-0 726.1965+-7.2641 ? 734.5980+-7.8931 ? might be 1.0116x slower arithmetic-precise-order-1 562.1729+-3.7369 ? 565.9546+-7.0548 ? arithmetic-precise-order-2 625.9554+-3.2714 ? 627.2934+-5.5553 ? arithmetic-simple-order-1 700.9144+-3.7195 ? 703.1039+-5.2511 ? arithmetic-simple-order-2 787.6263+-4.5500 784.2328+-6.3608 lz-string 529.3470+-6.0566 ? 540.9207+-6.1717 ? might be 1.0219x slower <arithmetic> 634.8406+-0.7214 ! 637.6900+-1.6896 ! definitely 1.0045x slower <geometric> * 627.1663+-0.8107 ! 630.2359+-1.5474 ! definitely 1.0049x slower <harmonic> 619.4557+-0.9565 ! 622.7261+-1.4368 ! definitely 1.0053x slower TipOfTree PutLocalSink All benchmarks: <arithmetic> 163.7660+-0.1794 ^ 162.7220+-0.3727 ^ definitely 1.0064x faster <geometric> 20.4632+-0.0376 ? 20.5153+-0.0418 ? might be 1.0025x slower <harmonic> 5.1179+-0.0158 ? 5.1288+-0.0191 ? might be 1.0021x slower TipOfTree PutLocalSink Geomean of preferred means: <scaled-result> 103.8385+-0.1723 ? 103.8627+-0.1611 ? might be 1.0002x slower
Created attachment 239169 [details] the patch
Attachment 239169 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h:25: Weird number of spaces at line-start. Are you using a 4-space indent? [whitespace/indent] [3] ERROR: Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h:42: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h:43: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h:44: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h:45: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/dfg/DFGPreciseLocalClobberize.h:46: Wrong number of spaces before statement. (expected: 12) [whitespace/indent] [4] ERROR: Source/JavaScriptCore/CMakeLists.txt:210: There should be exactly one empty line instead of 0 between "disassembler/ARM64/A64DOpcode.cpp" and "disassembler/ARMv7/ARMv7DOpcode.cpp". [list/emptyline] [5] ERROR: Source/JavaScriptCore/dfg/DFGObjectAllocationSinkingPhase.cpp:458: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGPutLocalSinkingPhase.cpp:167: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGPutLocalSinkingPhase.cpp:171: Missing space after , [whitespace/comma] [3] ERROR: Source/JavaScriptCore/dfg/DFGPutLocalSinkingPhase.cpp:177: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGPutLocalSinkingPhase.cpp:245: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGPutLocalSinkingPhase.cpp:254: Place brace on its own line for function definitions. [whitespace/braces] [4] ERROR: Source/JavaScriptCore/dfg/DFGPutLocalSinkingPhase.cpp:423: Place brace on its own line for function definitions. [whitespace/braces] [4] Total errors found: 14 in 29 files If any of these errors are false positives, please file a bug against check-webkit-style.
Landed in http://trac.webkit.org/changeset/174275
This seems to be causing problems on the internal bots. Rolling out since I can't find Phil or Oliver.
(In reply to comment #16) > This seems to be causing problems on the internal bots. Rolling out since I can't find Phil or Oliver. Phil I will email you the failures.
Re-opened since this is blocked by bug 137408
Relanded in http://trac.webkit.org/changeset/174318