Summary: | JSC: Pack unlinked instructions harder. | ||||||||
---|---|---|---|---|---|---|---|---|---|
Product: | WebKit | Reporter: | Andreas Kling <kling> | ||||||
Component: | JavaScriptCore | Assignee: | Andreas Kling <kling> | ||||||
Status: | RESOLVED FIXED | ||||||||
Severity: | Normal | CC: | barraclough, bunhere, commit-queue, fpizlo, ggaren, gyuyoung.kim, kling, oliver, rakuco | ||||||
Priority: | P2 | ||||||||
Version: | 528+ (Nightly build) | ||||||||
Hardware: | Unspecified | ||||||||
OS: | Unspecified | ||||||||
Attachments: |
|
Description
Andreas Kling
2014-01-26 14:51:16 PST
Created attachment 222288 [details]
Patch
Attachment 222288 [details] did not pass style-queue:
ERROR: Source/JavaScriptCore/bytecode/UnlinkedInstructionStream.h:72: Should have a space between // and comment [whitespace/comments] [4]
Total errors found: 1 in 8 files
If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 222289 [details]
Patch
Forgot some build system stuff.
Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, and AsmBench on HEYPRELADY (MacBookPro10,1). VMs tested: "TipOfTree" at /Users/akling/Source/Safari/Reference-OpenSource/WebKitBuild/Release/jsc "MyChanges" at /Users/akling/Source/Safari/OpenSource/WebKitBuild/Release/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. TipOfTree MyChanges SunSpider: 3d-cube 5.0502+-0.1667 ? 5.2029+-0.2289 ? might be 1.0303x slower 3d-morph 5.7098+-0.3108 ? 5.8830+-0.5824 ? might be 1.0303x slower 3d-raytrace 6.4214+-0.4464 ? 6.5811+-0.8402 ? might be 1.0249x slower access-binary-trees 1.5217+-0.1488 ? 1.5314+-0.0342 ? access-fannkuch 5.3005+-0.3849 ? 5.3159+-0.2503 ? access-nbody 2.6380+-0.1175 ? 2.7048+-0.1696 ? might be 1.0253x slower access-nsieve 3.2521+-0.1918 3.2502+-0.1509 bitops-3bit-bits-in-byte 1.4509+-0.0606 1.4457+-0.0700 bitops-bits-in-byte 2.8503+-0.2762 ? 2.8794+-0.2133 ? might be 1.0102x slower bitops-bitwise-and 2.1466+-0.4890 2.0448+-0.2221 might be 1.0498x faster bitops-nsieve-bits 3.4560+-0.1761 ? 3.4600+-0.1306 ? controlflow-recursive 2.0340+-0.1588 1.9979+-0.2043 might be 1.0181x faster crypto-aes 3.7794+-0.0392 ? 3.8223+-0.1014 ? might be 1.0114x slower crypto-md5 2.3720+-0.2873 2.3168+-0.0320 might be 1.0238x faster crypto-sha1 2.1599+-0.0748 ? 2.3150+-0.3035 ? might be 1.0718x slower date-format-tofte 8.3636+-0.3943 ? 8.5512+-0.4809 ? might be 1.0224x slower date-format-xparb 5.6882+-0.0432 ? 5.9246+-0.5428 ? might be 1.0415x slower math-cordic 3.0510+-0.2277 2.9790+-0.1350 might be 1.0242x faster math-partial-sums 5.1506+-0.2474 ? 5.2997+-0.3540 ? might be 1.0289x slower math-spectral-norm 1.7593+-0.2015 1.6737+-0.0645 might be 1.0511x faster regexp-dna 7.9693+-0.4628 ? 8.4171+-2.6398 ? might be 1.0562x slower string-base64 4.0562+-0.1262 ? 4.3197+-0.7733 ? might be 1.0650x slower string-fasta 6.5498+-0.1120 ? 7.2180+-1.0664 ? might be 1.1020x slower string-tagcloud 11.5059+-3.1647 10.1659+-0.4011 might be 1.1318x faster string-unpack-code 23.8005+-1.7389 22.8313+-0.7080 might be 1.0424x faster string-validate-input 4.5990+-0.2513 4.5607+-0.0786 <arithmetic> * 5.1014+-0.0809 ? 5.1035+-0.1201 ? might be 1.0004x slower <geometric> 4.0238+-0.0279 ? 4.0506+-0.0762 ? might be 1.0067x slower <harmonic> 3.3449+-0.0191 ? 3.3558+-0.0715 ? might be 1.0032x slower TipOfTree MyChanges LongSpider: 3d-cube 1331.0397+-10.4404 1329.6429+-8.8143 3d-morph 891.0615+-7.2715 888.8539+-1.6341 3d-raytrace 826.9677+-3.0821 826.6172+-11.3319 access-binary-trees 1674.0854+-25.7291 1656.2063+-22.7639 might be 1.0108x faster access-fannkuch 396.3028+-0.7037 ? 396.9335+-3.3034 ? access-nbody 831.6067+-3.2756 ? 832.1808+-3.9046 ? access-nsieve 977.2501+-12.7065 975.0717+-18.2693 bitops-3bit-bits-in-byte 96.5571+-0.1639 ? 97.6077+-1.2700 ? might be 1.0109x slower bitops-bits-in-byte 182.1647+-4.8831 181.4155+-3.9378 bitops-nsieve-bits 767.7944+-12.0940 ? 770.5960+-18.0940 ? controlflow-recursive 777.3472+-12.9225 772.3230+-0.6563 crypto-aes 1052.8511+-13.2956 ? 1066.4101+-25.2130 ? might be 1.0129x slower crypto-md5 735.4764+-8.8551 ? 743.0698+-13.6513 ? might be 1.0103x slower crypto-sha1 985.3370+-10.3478 ? 1004.8170+-25.9099 ? might be 1.0198x slower date-format-tofte 824.0000+-11.0361 ? 828.4603+-15.7943 ? date-format-xparb 930.6128+-16.2599 ? 941.8796+-33.9491 ? might be 1.0121x slower math-cordic 1205.4415+-6.7944 1203.6714+-6.7154 math-partial-sums 608.4153+-2.4295 ? 610.3924+-4.9196 ? math-spectral-norm 916.6740+-8.5286 914.8400+-0.4555 string-base64 408.4973+-5.3542 ? 412.5107+-5.4294 ? string-fasta 607.2172+-5.0077 ? 611.0516+-7.4330 ? string-tagcloud 250.6883+-5.1330 242.2059+-3.6827 might be 1.0350x faster <arithmetic> 785.3358+-1.6626 ? 786.6708+-3.9072 ? might be 1.0017x slower <geometric> * 667.1314+-1.4678 ? 668.0546+-3.3522 ? might be 1.0014x slower <harmonic> 498.5600+-1.2857 ? 498.9940+-3.5501 ? might be 1.0009x slower TipOfTree MyChanges V8Spider: crypto 48.4115+-2.2310 48.2100+-0.9341 deltablue 64.7512+-1.2655 ? 65.7610+-1.7302 ? might be 1.0156x slower earley-boyer 44.2818+-2.4311 ? 47.1703+-2.1900 ? might be 1.0652x slower raytrace 31.3949+-1.6566 30.9773+-2.6600 might be 1.0135x faster regexp 63.3703+-1.6748 ? 64.5823+-2.0995 ? might be 1.0191x slower richards 83.5972+-5.9838 82.1786+-3.5505 might be 1.0173x faster splay 32.5989+-1.5923 32.1121+-2.0927 might be 1.0152x faster <arithmetic> 52.6294+-1.6457 ? 52.9988+-1.0051 ? might be 1.0070x slower <geometric> * 49.7236+-1.5377 ? 50.0603+-1.1115 ? might be 1.0068x slower <harmonic> 46.9762+-1.5011 ? 47.1924+-1.2673 ? might be 1.0046x slower TipOfTree MyChanges Octane and V8v7: encrypt 0.26980+-0.00345 0.26873+-0.00378 decrypt 4.90347+-0.04290 ? 4.91469+-0.03625 ? deltablue x2 0.35369+-0.00593 ? 0.35441+-0.00854 ? earley 0.56507+-0.00768 ? 0.57656+-0.00968 ? might be 1.0203x slower boyer 6.72510+-0.06267 ? 6.76921+-0.10567 ? raytrace x2 2.90411+-0.06030 2.86051+-0.01177 might be 1.0152x faster regexp x2 19.83612+-0.07292 ? 19.86762+-0.19120 ? richards x2 0.25535+-0.00523 ? 0.25841+-0.00516 ? might be 1.0120x slower splay x2 0.41181+-0.00392 ? 0.41327+-0.00835 ? navier-stokes x2 6.81620+-0.01056 ? 6.81967+-0.04555 ? closure 0.46594+-0.00126 ! 0.49718+-0.00093 ! definitely 1.0670x slower jquery 7.24461+-0.02374 ! 7.40717+-0.02237 ! definitely 1.0224x slower gbemu x2 42.35524+-0.39571 42.21754+-0.43021 mandreel x2 85.03469+-0.65288 84.63928+-0.40381 pdfjs x2 62.61747+-0.16457 ! 63.17598+-0.34325 ! definitely 1.0089x slower box2d x2 21.00551+-0.15472 ? 21.11545+-0.55730 ? V8v7: <arithmetic> 4.60112+-0.00654 ? 4.60481+-0.02063 ? might be 1.0008x slower <geometric> * 1.54661+-0.00533 ? 1.54988+-0.00399 ? might be 1.0021x slower <harmonic> 0.63349+-0.00599 ? 0.63682+-0.00435 ? might be 1.0053x slower Octane including V8v7: <arithmetic> 19.35978+-0.05235 ? 19.37992+-0.11088 ? might be 1.0010x slower <geometric> * 4.47058+-0.00985 ? 4.49353+-0.01901 ? might be 1.0051x slower <harmonic> 0.93731+-0.00823 ? 0.94654+-0.00593 ? might be 1.0098x slower TipOfTree MyChanges Kraken: ai-astar 247.423+-1.457 245.323+-3.802 audio-beat-detection 137.772+-3.586 ? 140.676+-7.613 ? might be 1.0211x slower audio-dft 217.537+-6.621 ? 218.319+-6.750 ? audio-fft 82.429+-3.209 ? 82.885+-3.725 ? audio-oscillator 169.309+-4.111 169.234+-4.900 imaging-darkroom 181.349+-5.520 179.826+-5.175 imaging-desaturate 89.761+-3.343 88.889+-0.626 imaging-gaussian-blur 199.923+-3.553 ? 200.816+-4.439 ? json-parse-financial 49.267+-1.682 49.083+-2.285 json-stringify-tinderbox 63.372+-2.290 ? 64.539+-2.361 ? might be 1.0184x slower stanford-crypto-aes 57.290+-1.696 ? 57.427+-0.672 ? stanford-crypto-ccm 66.276+-1.284 ? 67.241+-0.379 ? might be 1.0146x slower stanford-crypto-pbkdf2 165.149+-2.100 162.374+-2.834 might be 1.0171x faster stanford-crypto-sha256-iterative 58.922+-3.665 58.508+-1.761 <arithmetic> * 127.556+-0.922 127.510+-1.050 might be 1.0004x faster <geometric> 110.163+-0.486 ? 110.280+-0.840 ? might be 1.0011x slower <harmonic> 95.049+-0.437 ? 95.255+-0.876 ? might be 1.0022x slower TipOfTree MyChanges JSRegress: adapt-to-double-divide 19.0643+-2.4485 17.7910+-0.3213 might be 1.0716x faster aliased-arguments-getbyval 0.8047+-0.1602 0.7741+-0.1703 might be 1.0395x faster allocate-big-object 2.2733+-0.3926 2.2582+-0.3377 arity-mismatch-inlining 0.7634+-0.1809 0.6802+-0.0184 might be 1.1223x faster array-access-polymorphic-structure 6.6183+-1.4968 6.0918+-0.1674 might be 1.0864x faster array-nonarray-polymorhpic-access 37.3354+-6.3317 35.4532+-0.3560 might be 1.0531x faster array-with-double-add 3.7630+-0.3380 ? 3.8455+-0.4911 ? might be 1.0219x slower array-with-double-increment 2.9385+-0.1279 2.9161+-0.1231 array-with-double-mul-add 4.0577+-0.3824 3.9828+-0.0865 might be 1.0188x faster array-with-double-sum 4.0820+-0.3525 3.9883+-0.0928 might be 1.0235x faster array-with-int32-add-sub 6.0158+-0.1406 ? 6.6147+-1.8689 ? might be 1.0996x slower array-with-int32-or-double-sum 4.0344+-0.1124 ? 4.1870+-0.3356 ? might be 1.0378x slower ArrayBuffer-DataView-alloc-large-long-lived 71.1955+-2.9832 ? 71.2150+-2.5292 ? ArrayBuffer-DataView-alloc-long-lived 22.4315+-2.5128 20.6216+-0.9323 might be 1.0878x faster ArrayBuffer-Int32Array-byteOffset 3.5903+-0.1505 3.5247+-0.0965 might be 1.0186x faster ArrayBuffer-Int8Array-alloc-huge-long-lived 142.2330+-3.8913 139.8743+-3.0210 might be 1.0169x faster ArrayBuffer-Int8Array-alloc-large-long-lived-fragmented 106.2190+-9.1480 105.0285+-3.4971 might be 1.0113x faster ArrayBuffer-Int8Array-alloc-large-long-lived 71.3640+-1.8079 70.6540+-1.8081 might be 1.0100x faster ArrayBuffer-Int8Array-alloc-long-lived-buffer 32.0504+-2.9117 ? 33.4604+-2.3939 ? might be 1.0440x slower ArrayBuffer-Int8Array-alloc-long-lived 19.6492+-0.8609 ? 19.7438+-1.3547 ? ArrayBuffer-Int8Array-alloc 17.5317+-1.4564 ? 18.3716+-3.4460 ? might be 1.0479x slower asmjs_bool_bug 5.6671+-0.3009 5.4401+-0.1501 might be 1.0417x faster basic-set 14.3934+-1.0341 ? 16.2729+-1.2562 ? might be 1.1306x slower big-int-mul 3.3154+-0.0540 ? 3.3458+-0.2379 ? boolean-test 2.8478+-0.1197 ? 2.8805+-0.2255 ? might be 1.0115x slower branch-fold 3.6855+-0.2400 ? 3.6879+-0.1236 ? by-val-generic 9.0688+-2.2636 8.7398+-2.3290 might be 1.0376x faster captured-assignments 0.4037+-0.0298 0.3879+-0.0291 might be 1.0406x faster cast-int-to-double 9.6200+-2.4929 8.7999+-0.1470 might be 1.0932x faster cell-argument 11.1727+-0.3627 ? 11.7582+-2.4957 ? might be 1.0524x slower cfg-simplify 2.7241+-0.0722 ? 2.7806+-0.3189 ? might be 1.0208x slower chain-custom-getter 109.2890+-0.9319 107.2367+-1.6183 might be 1.0191x faster chain-getter-access 333.6516+-6.9151 ? 342.9740+-2.7712 ? might be 1.0279x slower cmpeq-obj-to-obj-other 8.4207+-0.3507 ? 9.0222+-2.6890 ? might be 1.0714x slower constant-test 4.6151+-0.1200 ? 5.2151+-1.5007 ? might be 1.1300x slower DataView-custom-properties 76.6923+-2.4670 ? 77.4172+-4.0786 ? delay-tear-off-arguments-strictmode 2.6387+-0.2734 ? 2.8135+-0.4955 ? might be 1.0662x slower destructuring-arguments-length 127.2654+-2.4530 123.1418+-3.0138 might be 1.0335x faster destructuring-arguments 5.0906+-0.2031 4.9603+-0.1539 might be 1.0263x faster destructuring-swap 4.6078+-0.1535 ? 4.6895+-0.2607 ? might be 1.0177x slower direct-arguments-getbyval 0.6378+-0.0135 0.6227+-0.0344 might be 1.0241x faster double-get-by-val-out-of-bounds 4.5848+-0.1610 ? 4.6245+-0.0704 ? double-pollution-getbyval 8.5287+-0.3781 ! 11.0607+-1.3252 ! definitely 1.2969x slower double-pollution-putbyoffset 3.8547+-0.0661 ? 3.9271+-0.1862 ? might be 1.0188x slower double-to-int32-typed-array-no-inline 1.9392+-0.2893 ? 1.9420+-0.2958 ? double-to-int32-typed-array 1.5598+-0.0657 ? 1.7742+-0.3513 ? might be 1.1375x slower double-to-uint32-typed-array-no-inline 1.8959+-0.1881 1.8724+-0.0842 might be 1.0126x faster double-to-uint32-typed-array 1.6122+-0.0791 ? 1.6547+-0.0425 ? might be 1.0263x slower empty-string-plus-int 8.3860+-2.0726 8.1473+-1.9780 might be 1.0293x faster emscripten-cube2hash 41.0389+-1.1584 ? 42.5778+-2.5474 ? might be 1.0375x slower emscripten-memops 4320.9244+-10.6652 4320.1749+-12.6686 external-arguments-getbyval 1.5573+-0.1161 ? 1.7086+-0.1986 ? might be 1.0971x slower external-arguments-putbyval 2.2782+-0.1546 ? 2.3138+-0.2556 ? might be 1.0156x slower fixed-typed-array-storage-var-index 1.1679+-0.2017 1.1015+-0.1257 might be 1.0603x faster fixed-typed-array-storage 0.7225+-0.0387 0.7042+-0.0148 might be 1.0260x faster Float32Array-matrix-mult 4.4455+-0.1130 ? 4.5610+-0.1132 ? might be 1.0260x slower Float32Array-to-Float64Array-set 60.1395+-2.8896 58.5782+-0.9789 might be 1.0267x faster Float64Array-alloc-long-lived 72.2607+-1.5569 71.7206+-2.6927 Float64Array-to-Int16Array-set 72.5355+-3.5275 70.2886+-3.2971 might be 1.0320x faster fold-double-to-int 13.3962+-2.6575 12.4515+-0.3277 might be 1.0759x faster for-of-iterate-array-entries 6.6997+-0.7781 ? 7.2636+-1.8320 ? might be 1.0842x slower for-of-iterate-array-keys 2.5923+-0.4918 2.5692+-0.2757 for-of-iterate-array-values 2.2352+-0.1044 2.2317+-0.1356 function-dot-apply 2.1788+-0.1704 ? 2.2745+-0.3835 ? might be 1.0439x slower function-test 3.2081+-0.0869 3.1623+-0.1631 might be 1.0145x faster get-by-id-chain-from-try-block 5.9080+-0.1921 ? 6.9478+-1.9965 ? might be 1.1760x slower get-by-id-proto-or-self 15.4058+-1.5561 14.9713+-1.9166 might be 1.0290x faster get-by-id-self-or-proto 17.4856+-4.1886 16.4359+-4.9508 might be 1.0639x faster get-by-val-out-of-bounds 4.4477+-0.2233 ? 4.5432+-0.4250 ? might be 1.0215x slower get_callee_monomorphic 4.0145+-0.4086 ? 4.1547+-0.5432 ? might be 1.0349x slower get_callee_polymorphic 3.3413+-0.1131 ? 3.6907+-1.3044 ? might be 1.1046x slower global-var-const-infer-fire-from-opt 0.7985+-0.0521 ? 0.8355+-0.2238 ? might be 1.0463x slower global-var-const-infer 0.6025+-0.0169 ? 0.6122+-0.0492 ? might be 1.0161x slower HashMap-put-get-iterate-keys 28.4797+-1.6625 ? 30.5260+-3.1116 ? might be 1.0719x slower HashMap-put-get-iterate 39.9660+-4.2109 37.3801+-0.5880 might be 1.0692x faster HashMap-string-put-get-iterate 35.9931+-4.0654 ? 37.9866+-5.4384 ? might be 1.0554x slower imul-double-only 11.3310+-0.3418 11.2543+-0.1123 imul-int-only 9.7369+-0.1252 ? 10.0705+-0.5127 ? might be 1.0343x slower imul-mixed 14.3497+-1.1261 13.9634+-0.3285 might be 1.0277x faster in-four-cases 17.3262+-0.2282 ? 18.0573+-3.3903 ? might be 1.0422x slower in-one-case-false 8.5057+-0.6531 8.1129+-0.3793 might be 1.0484x faster in-one-case-true 8.0845+-0.3039 ? 9.2141+-2.8694 ? might be 1.1397x slower in-two-cases 8.5458+-0.7115 ? 8.7454+-0.5018 ? might be 1.0234x slower indexed-properties-in-objects 2.7676+-0.1143 2.6603+-0.0702 might be 1.0403x faster infer-closure-const-then-mov-no-inline 12.1060+-2.8506 11.0573+-0.2380 might be 1.0948x faster infer-closure-const-then-mov 20.5540+-3.3431 ? 20.6187+-2.9105 ? infer-closure-const-then-put-to-scope-no-inline 11.9375+-2.9212 ? 12.3274+-2.8341 ? might be 1.0327x slower infer-closure-const-then-put-to-scope 21.8419+-2.0421 21.1550+-1.0907 might be 1.0325x faster infer-closure-const-then-reenter-no-inline 55.6151+-1.7746 54.5540+-0.5336 might be 1.0194x faster infer-closure-const-then-reenter 22.3059+-1.2958 ? 22.8689+-2.7504 ? might be 1.0252x slower infer-one-time-closure-ten-vars 18.1428+-0.2065 ? 18.9788+-2.6970 ? might be 1.0461x slower infer-one-time-closure-two-vars 18.0153+-0.2690 17.8758+-0.3237 infer-one-time-closure 17.8372+-0.2720 17.7958+-0.2032 infer-one-time-deep-closure 35.9183+-2.9124 ? 37.8370+-3.9282 ? might be 1.0534x slower inline-arguments-access 1.2737+-0.2254 1.2604+-0.2664 might be 1.0106x faster inline-arguments-aliased-access 1.3160+-0.2128 1.2715+-0.1834 might be 1.0349x faster inline-arguments-local-escape 17.0601+-0.2691 ? 18.9026+-2.9976 ? might be 1.1080x slower inline-get-scoped-var 3.9607+-0.2783 ? 4.0435+-0.4166 ? might be 1.0209x slower inlined-put-by-id-transition 9.8334+-1.2369 9.7006+-1.1135 might be 1.0137x faster int-or-other-abs-then-get-by-val 5.9720+-0.1746 ? 6.1110+-0.2921 ? might be 1.0233x slower int-or-other-abs-zero-then-get-by-val 22.2432+-2.4127 22.1810+-3.0282 int-or-other-add-then-get-by-val 8.0732+-2.4156 7.7125+-0.6444 might be 1.0468x faster int-or-other-add 6.5783+-0.2560 6.5714+-0.1780 int-or-other-div-then-get-by-val 4.5491+-0.2054 4.5182+-0.2665 int-or-other-max-then-get-by-val 5.4526+-0.1385 ? 6.0558+-1.5664 ? might be 1.1106x slower int-or-other-min-then-get-by-val 5.3677+-0.1627 ? 5.5087+-0.3944 ? might be 1.0263x slower int-or-other-mod-then-get-by-val 4.2554+-0.1313 ? 4.2787+-0.1180 ? int-or-other-mul-then-get-by-val 4.3909+-0.1186 ? 4.4705+-0.1308 ? might be 1.0181x slower int-or-other-neg-then-get-by-val 5.2650+-0.3194 5.2410+-0.0714 int-or-other-neg-zero-then-get-by-val 21.3116+-2.6298 20.3600+-0.4256 might be 1.0467x faster int-or-other-sub-then-get-by-val 6.8872+-0.2119 ? 7.0075+-0.2306 ? might be 1.0175x slower int-or-other-sub 5.2017+-0.3735 4.9910+-0.2019 might be 1.0422x faster int-overflow-local 4.0749+-0.1609 4.0285+-0.1285 might be 1.0115x faster Int16Array-alloc-long-lived 47.3671+-1.1331 ? 49.2104+-0.8666 ? might be 1.0389x slower Int16Array-bubble-sort-with-byteLength 21.1370+-0.3208 ? 21.1841+-0.2038 ? Int16Array-bubble-sort 21.3785+-1.4739 20.7211+-0.3812 might be 1.0317x faster Int16Array-load-int-mul 1.2917+-0.0739 ? 1.3767+-0.1490 ? might be 1.0658x slower Int16Array-to-Int32Array-set 53.7535+-3.7120 52.8567+-2.9028 might be 1.0170x faster Int32Array-alloc-huge-long-lived 221.5239+-15.1140 217.2361+-1.9562 might be 1.0197x faster Int32Array-alloc-huge 218.0760+-6.8656 ? 218.9402+-5.0357 ? Int32Array-alloc-large-long-lived 607.4730+-8.3214 606.1062+-1.7529 Int32Array-alloc-large 28.6589+-1.9991 ? 29.2888+-2.6520 ? might be 1.0220x slower Int32Array-alloc-long-lived 55.1899+-1.7595 ? 56.1160+-3.2243 ? might be 1.0168x slower Int32Array-alloc 2.8532+-0.1063 ? 3.2123+-0.6214 ? might be 1.1259x slower Int32Array-Int8Array-view-alloc 9.9968+-0.9067 ? 11.8929+-2.1921 ? might be 1.1897x slower int52-spill 8.3995+-0.7534 8.1963+-0.3113 might be 1.0248x faster Int8Array-alloc-long-lived 49.6233+-1.0090 47.1073+-2.1023 might be 1.0534x faster Int8Array-load-with-byteLength 3.1722+-0.2184 3.1287+-0.1155 might be 1.0139x faster Int8Array-load 3.1765+-0.0822 3.1033+-0.1240 might be 1.0236x faster integer-divide 10.5627+-0.1970 10.4595+-0.1991 integer-modulo 1.4015+-0.0611 ? 1.4321+-0.0221 ? might be 1.0219x slower large-int-captured 7.5948+-2.4374 6.9940+-0.5053 might be 1.0859x faster large-int-neg 17.0217+-0.4062 17.0026+-0.2573 large-int 16.0642+-2.9937 ? 16.6019+-3.5124 ? might be 1.0335x slower logical-not 8.0212+-0.2864 7.8663+-0.1590 might be 1.0197x faster lots-of-fields 8.3532+-2.0845 7.5677+-0.1484 might be 1.1038x faster make-indexed-storage 2.7062+-0.2888 ? 2.9713+-0.4922 ? might be 1.0979x slower make-rope-cse 4.6563+-1.0917 4.2307+-0.7381 might be 1.1006x faster marsaglia-larger-ints 71.4597+-1.4902 ? 71.4827+-2.5766 ? marsaglia-osr-entry 31.0492+-2.5761 30.4245+-1.2845 might be 1.0205x faster marsaglia 291.7380+-0.5297 ? 291.9322+-0.7988 ? method-on-number 19.9130+-0.4224 ? 20.0267+-3.0262 ? negative-zero-divide 0.3158+-0.0640 ? 0.3825+-0.1827 ? might be 1.2112x slower negative-zero-modulo 0.3488+-0.1189 0.3209+-0.0572 might be 1.0871x faster negative-zero-negate 0.2687+-0.0095 ? 0.3370+-0.0989 ? might be 1.2539x slower nested-function-parsing-random 246.3818+-1.6119 243.8637+-3.5597 might be 1.0103x faster nested-function-parsing 28.8943+-3.4009 28.1544+-0.2073 might be 1.0263x faster new-array-buffer-dead 2.8182+-0.1821 2.5924+-0.2978 might be 1.0871x faster new-array-buffer-push 7.1273+-0.6789 ? 7.3392+-1.3928 ? might be 1.0297x slower new-array-dead 23.6634+-3.1523 23.5361+-3.3913 new-array-push 7.1984+-0.7510 6.8372+-0.4582 might be 1.0528x faster number-test 3.0945+-0.3621 2.7761+-0.0643 might be 1.1147x faster object-closure-call 11.4540+-1.6812 11.2377+-1.8242 might be 1.0192x faster object-test 3.1586+-0.2161 3.0215+-0.0628 might be 1.0454x faster poly-stricteq 55.7905+-1.3737 ? 55.9507+-1.6169 ? polymorphic-structure 14.1788+-0.9588 13.9550+-0.6816 might be 1.0160x faster polyvariant-monomorphic-get-by-id 7.5684+-0.3189 7.5028+-0.0746 proto-custom-getter 111.3323+-0.2173 ^ 107.6988+-3.3748 ^ definitely 1.0337x faster proto-getter-access 333.2038+-5.9429 ! 347.4670+-2.8912 ! definitely 1.0428x slower put-by-id 13.1747+-0.7753 ? 14.4938+-1.7711 ? might be 1.1001x slower put-by-val-large-index-blank-indexing-type 13.9163+-0.4116 ? 14.0742+-0.9195 ? might be 1.0113x slower put-by-val-machine-int 2.3439+-0.1911 2.3143+-0.1427 might be 1.0128x faster rare-osr-exit-on-local 15.0012+-2.3277 ? 15.2775+-2.8436 ? might be 1.0184x slower register-pressure-from-osr 22.1317+-2.5191 ? 22.2966+-3.1448 ? simple-activation-demo 25.6119+-1.0188 25.3549+-0.1466 might be 1.0101x faster simple-custom-getter 346.1434+-6.3540 ^ 329.8716+-0.2838 ^ definitely 1.0493x faster simple-getter-access 533.4545+-19.5684 ! 559.8868+-5.2743 ! definitely 1.0495x slower slow-array-profile-convergence 2.7469+-0.1215 2.6853+-0.3038 might be 1.0229x faster slow-convergence 2.9011+-0.2291 ? 2.9367+-0.1738 ? might be 1.0123x slower sparse-conditional 1.0612+-0.1288 ? 1.0634+-0.2490 ? splice-to-remove 46.8359+-2.8047 45.7555+-1.6908 might be 1.0236x faster stepanov_container 6818.0985+-77.2564 6785.5857+-52.2474 string-concat-object 2.3218+-0.7701 2.1712+-0.0664 might be 1.0694x faster string-concat-pair-object 2.3477+-0.5487 2.2142+-0.3647 might be 1.0603x faster string-concat-pair-simple 11.1509+-1.0624 ? 11.5777+-1.4982 ? might be 1.0383x slower string-concat-simple 11.0312+-0.6034 ? 11.9536+-2.0332 ? might be 1.0836x slower string-cons-repeat 7.8978+-2.1178 ? 8.1193+-1.7269 ? might be 1.0280x slower string-cons-tower 8.2175+-1.7942 ? 8.3076+-0.5922 ? might be 1.0110x slower string-equality 29.4535+-1.2556 29.3443+-1.5807 string-get-by-val-big-char 9.6450+-2.2453 ? 9.9984+-2.6096 ? might be 1.0366x slower string-get-by-val-out-of-bounds-insane 3.4509+-0.0515 3.4196+-0.1444 string-get-by-val-out-of-bounds 3.3997+-0.1689 ? 3.4746+-0.2054 ? might be 1.0220x slower string-get-by-val 2.9084+-0.0596 2.9061+-0.0961 string-hash 1.9550+-0.3538 1.7257+-0.0292 might be 1.1329x faster string-long-ident-equality 25.8592+-0.2704 ? 27.9686+-3.3849 ? might be 1.0816x slower string-repeat-arith 34.5153+-0.8555 ? 34.5753+-4.6632 ? string-sub 70.8018+-1.0125 69.7048+-2.5170 might be 1.0157x faster string-test 2.9393+-1.0634 2.7908+-0.4275 might be 1.0532x faster string-var-equality 41.8027+-1.5617 ? 42.9047+-1.0778 ? might be 1.0264x slower structure-hoist-over-transitions 2.1802+-0.0408 ? 2.3254+-0.3377 ? might be 1.0666x slower switch-char-constant 2.1893+-0.0484 ? 2.2045+-0.0401 ? switch-char 5.2383+-0.1808 ? 5.4557+-0.5830 ? might be 1.0415x slower switch-constant 7.8755+-1.5760 ? 7.9218+-1.4517 ? switch-string-basic-big-var 14.6241+-0.9612 ? 15.3441+-2.3267 ? might be 1.0492x slower switch-string-basic-big 14.0445+-0.4628 13.8931+-0.5361 might be 1.0109x faster switch-string-basic-var 15.8680+-2.7597 15.1758+-2.5884 might be 1.0456x faster switch-string-basic 14.0864+-2.6111 13.0295+-0.1450 might be 1.0811x faster switch-string-big-length-tower-var 20.6638+-1.1557 20.2758+-0.5374 might be 1.0191x faster switch-string-length-tower-var 16.4912+-3.1895 14.6815+-0.2188 might be 1.1233x faster switch-string-length-tower 12.5461+-0.2059 ? 13.5542+-2.3456 ? might be 1.0804x slower switch-string-short 12.6026+-0.6044 12.5006+-0.2366 switch 11.8964+-2.3153 11.4207+-1.8808 might be 1.0416x faster tear-off-arguments-simple 1.7640+-0.1987 1.7557+-0.1764 tear-off-arguments 2.5959+-0.2392 2.5400+-0.1216 might be 1.0220x faster temporal-structure 12.4258+-0.3062 12.3720+-0.2250 to-int32-boolean 14.9543+-3.3343 13.1193+-0.2044 might be 1.1399x faster undefined-test 2.8420+-0.2067 2.8027+-0.0935 might be 1.0140x faster weird-inlining-const-prop 1.6951+-0.0741 ? 1.7089+-0.1699 ? <arithmetic> 84.4621+-0.1932 84.3744+-0.3074 might be 1.0010x faster <geometric> * 9.8515+-0.0918 ? 9.8874+-0.1019 ? might be 1.0036x slower <harmonic> 3.6997+-0.0212 ? 3.7497+-0.1067 ? might be 1.0135x slower TipOfTree MyChanges AsmBench: bigfib.cpp 1248.4705+-6.8083 1247.2555+-9.3131 cray.c 37.1717+-0.9697 ? 38.5981+-2.3026 ? might be 1.0384x slower dry.c 939.2240+-14.1563 935.5952+-4.7061 FloatMM.c 1663.2938+-3.5045 ? 1666.0802+-3.6270 ? gcc-loops.cpp 2372.7313+-20.6483 ? 2377.0404+-13.0890 ? n-body.c 1735.6244+-3.3702 ? 1736.4311+-5.2138 ? Quicksort.c 77.3410+-3.5072 ? 77.9052+-2.7692 ? stepanov_container.cpp 6749.6179+-44.9493 ? 6775.2678+-51.9562 ? Towers.c 53.5237+-1.3089 52.7960+-1.7392 might be 1.0138x faster <arithmetic> 1652.9998+-3.7222 ? 1656.3299+-4.8204 ? might be 1.0020x slower <geometric> * 587.4966+-3.3977 ? 589.7032+-0.6627 ? might be 1.0038x slower <harmonic> 144.8312+-1.9752 ? 146.7303+-1.2597 ? might be 1.0131x slower TipOfTree MyChanges All benchmarks: <arithmetic> 168.3098+-0.0909 ? 168.4497+-0.3546 ? might be 1.0008x slower <geometric> 14.9840+-0.0831 ? 15.0411+-0.0873 ? might be 1.0038x slower <harmonic> 3.3863+-0.0193 ? 3.4251+-0.0633 ? might be 1.0114x slower TipOfTree MyChanges Geomean of preferred means: <scaled-result> 47.6580+-0.1175 ? 47.7992+-0.1135 ? might be 1.0030x slower Performance looks good, everything appears neutral. Comment on attachment 222289 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=222289&action=review R=me. I like this a lot. Please consider removing the NDEBUG guards, since in JSC we tend to make debug support code available in release builds to enable easy release debugging. > Source/JavaScriptCore/bytecode/UnlinkedInstructionStream.cpp:180 > +#ifndef NDEBUG I would remove the #ifndef NDEBUG guard for this. It's very common to do "debugging" on JSC in release mode, and we don't generally have NDEBUG guards on debug support. (In reply to comment #6) > (From update of attachment 222289 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=222289&action=review > > R=me. I like this a lot. Glad you like it! > > Source/JavaScriptCore/bytecode/UnlinkedInstructionStream.cpp:180 > > +#ifndef NDEBUG > > I would remove the #ifndef NDEBUG guard for this. It's very common to do "debugging" on JSC in release mode, and we don't generally have NDEBUG guards on debug support. I put this behind NDEBUG to avoid fattening UnlinkedInstructionStream by 8 bytes (m_unpackedInstructionsForDebugging). Since the only user of this functionality is behind NDEBUG as well, I'm gonna leave it like that for now. Comment on attachment 222289 [details] Patch Clearing flags on attachment: 222289 Committed r162825: <http://trac.webkit.org/changeset/162825> All reviewed patches have been landed. Closing bug. |