WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
127660
JSC: Pack unlinked instructions harder.
https://bugs.webkit.org/show_bug.cgi?id=127660
Summary
JSC: Pack unlinked instructions harder.
Andreas Kling
Reported
2014-01-26 14:51:16 PST
We shouldn't waste 32 bits per unlinked instruction when they are mostly just sitting around in the code cache.
Attachments
Patch
(29.72 KB, patch)
2014-01-26 15:08 PST
,
Andreas Kling
no flags
Details
Formatted Diff
Diff
Patch
(33.20 KB, patch)
2014-01-26 15:13 PST
,
Andreas Kling
no flags
Details
Formatted Diff
Diff
Show Obsolete
(1)
View All
Add attachment
proposed patch, testcase, etc.
Andreas Kling
Comment 1
2014-01-26 15:08:32 PST
Created
attachment 222288
[details]
Patch
WebKit Commit Bot
Comment 2
2014-01-26 15:10:26 PST
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.
Andreas Kling
Comment 3
2014-01-26 15:13:42 PST
Created
attachment 222289
[details]
Patch Forgot some build system stuff.
Andreas Kling
Comment 4
2014-01-26 20:05:48 PST
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
Filip Pizlo
Comment 5
2014-01-26 20:39:30 PST
Performance looks good, everything appears neutral.
Filip Pizlo
Comment 6
2014-01-26 20:43:42 PST
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.
Andreas Kling
Comment 7
2014-01-26 20:57:27 PST
(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.
WebKit Commit Bot
Comment 8
2014-01-26 21:40:58 PST
Comment on
attachment 222289
[details]
Patch Clearing flags on attachment: 222289 Committed
r162825
: <
http://trac.webkit.org/changeset/162825
>
WebKit Commit Bot
Comment 9
2014-01-26 21:41:01 PST
All reviewed patches have been landed. Closing 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