WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
RESOLVED FIXED
124464
Infer constant global variables
https://bugs.webkit.org/show_bug.cgi?id=124464
Summary
Infer constant global variables
Filip Pizlo
Reported
2013-11-16 21:34:57 PST
We currently infer constant globals if they are functions, but fail to do so in the general case. No good reason for that.
Attachments
sort of a beginning
(6.94 KB, patch)
2013-11-17 23:55 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
a bit more
(8.01 KB, patch)
2013-11-18 00:00 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
slowly...
(15.45 KB, patch)
2013-11-18 17:48 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
the patch
(50.94 KB, patch)
2013-11-18 22:14 PST
,
Filip Pizlo
buildbot
: commit-queue-
Details
Formatted Diff
Diff
thingy
(51.94 KB, patch)
2013-11-19 10:29 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
the patch
(74.45 KB, patch)
2013-11-19 13:03 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
llvm patch
(3.96 KB, patch)
2013-11-19 14:17 PST
,
Filip Pizlo
no flags
Details
Formatted Diff
Diff
the patch
(74.68 KB, patch)
2013-11-19 15:49 PST
,
Filip Pizlo
sam
: review+
Details
Formatted Diff
Diff
Show Obsolete
(6)
View All
Add attachment
proposed patch, testcase, etc.
Filip Pizlo
Comment 1
2013-11-17 23:55:32 PST
Created
attachment 217173
[details]
sort of a beginning
Filip Pizlo
Comment 2
2013-11-18 00:00:51 PST
Created
attachment 217174
[details]
a bit more
Filip Pizlo
Comment 3
2013-11-18 17:48:37 PST
Created
attachment 217258
[details]
slowly...
Filip Pizlo
Comment 4
2013-11-18 22:14:24 PST
Created
attachment 217271
[details]
the patch
Build Bot
Comment 5
2013-11-18 22:57:57 PST
Comment on
attachment 217271
[details]
the patch
Attachment 217271
[details]
did not pass win-ews (win): Output:
http://webkit-queues.appspot.com/results/26978022
Filip Pizlo
Comment 6
2013-11-19 10:29:56 PST
Created
attachment 217311
[details]
thingy Backing up before I rationalize something a bit more.
Filip Pizlo
Comment 7
2013-11-19 11:10:04 PST
It looks like I'll need to make some LLVM changes to expose CreateFence().
Filip Pizlo
Comment 8
2013-11-19 13:03:01 PST
Created
attachment 217321
[details]
the patch
Filip Pizlo
Comment 9
2013-11-19 14:17:45 PST
Created
attachment 217331
[details]
llvm patch
Filip Pizlo
Comment 10
2013-11-19 14:48:37 PST
Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, and JSRegress on oldmac (MacPro4,1). VMs tested: "Old" at /Volumes/Data/pizlo/secondary/OpenSource/WebKitBuild/Release/jsc (
r159352
) "TipOfTree" at /Volumes/Data/pizlo/OpenSource/WebKitBuild/Release/jsc (
r159462
) "ConstInfer" at /Volumes/Data/fromMiniMe/primary/OpenSource/WebKitBuild/Release/jsc (
r159462
) Collected 10 samples per benchmark/VM, with 10 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. Old TipOfTree ConstInfer ConstInfer v. Old SunSpider: 3d-cube 7.5813+-0.0837 7.5099+-0.0311 ! 8.0305+-0.0473 ! definitely 1.0593x slower 3d-morph 8.9693+-0.0773 ? 9.0832+-0.0468 ^ 8.8333+-0.0716 might be 1.0154x faster 3d-raytrace 9.3453+-0.1951 9.3084+-0.2097 9.2695+-0.1789 access-binary-trees 2.0006+-0.0151 ? 2.0066+-0.0088 ? 2.0191+-0.0160 ? access-fannkuch 7.9737+-0.1271 ? 7.9968+-0.0505 ? 8.0239+-0.0523 ? access-nbody 4.2408+-0.0152 ? 4.2599+-0.0158 4.2448+-0.0077 ? access-nsieve 5.0098+-0.0427 ? 5.0181+-0.0657 5.0146+-0.0393 ? bitops-3bit-bits-in-byte 1.8453+-0.0204 1.8403+-0.0065 ? 1.8439+-0.0036 bitops-bits-in-byte 7.2328+-0.0973 ? 7.2968+-0.0873 ? 7.3406+-0.0594 ? might be 1.0149x slower bitops-bitwise-and 2.9072+-0.0579 ? 2.9211+-0.0444 ? 2.9477+-0.0186 ? might be 1.0139x slower bitops-nsieve-bits 4.6191+-0.0317 4.5737+-0.0568 ? 4.6064+-0.0060 controlflow-recursive 3.1574+-0.0176 3.1478+-0.0491 ? 3.1495+-0.0435 crypto-aes 5.5183+-0.0647 5.4801+-0.0254 ? 5.5083+-0.0861 crypto-md5 3.1918+-0.0427 3.1348+-0.0207 ? 3.2146+-0.0775 ? crypto-sha1 3.0005+-0.0786 2.9676+-0.0145 ? 2.9740+-0.0120 date-format-tofte 11.5722+-0.1942 11.4873+-0.1753 11.3636+-0.1770 might be 1.0184x faster date-format-xparb 8.6253+-0.0927 8.6029+-0.0709 8.5321+-0.0821 might be 1.0109x faster math-cordic 4.6024+-0.0415 ? 4.6132+-0.0826 ^ 3.8967+-0.0121 ^ definitely 1.1811x faster math-partial-sums 10.2597+-0.0483 ? 10.2802+-0.0635 ? 10.3371+-0.0742 ? math-spectral-norm 2.7435+-0.0104 2.7283+-0.0116 ? 2.7320+-0.0075 regexp-dna 12.9838+-0.1186 ? 13.0205+-0.1752 12.9385+-0.1526 string-base64 5.5151+-0.0479 5.4973+-0.0372 ? 5.5889+-0.2107 ? might be 1.0134x slower string-fasta 10.6524+-0.1175 10.5616+-0.0848 10.5153+-0.1090 might be 1.0130x faster string-tagcloud 14.9815+-0.1459 ? 15.1071+-0.1295 15.0956+-0.0787 ? string-unpack-code 30.2962+-0.0994 30.1338+-0.3907 ? 30.3429+-0.5461 ? string-validate-input 6.8886+-0.0420 ? 6.9186+-0.0404 6.9142+-0.0520 ? <arithmetic> * 7.5275+-0.0222 7.5191+-0.0283 7.5107+-0.0268 might be 1.0022x faster <geometric> 6.0345+-0.0145 6.0255+-0.0184 6.0085+-0.0167 might be 1.0043x faster <harmonic> 4.9277+-0.0134 4.9171+-0.0147 4.9031+-0.0139 might be 1.0050x faster Old TipOfTree ConstInfer ConstInfer v. Old LongSpider: 3d-cube 2208.5469+-10.1600 2207.7935+-8.1583 ! 2769.1203+-30.4995 ! definitely 1.2538x slower 3d-morph 1546.5802+-6.5961 1543.5007+-1.0351 ^ 1519.0914+-5.9873 ^ definitely 1.0181x faster 3d-raytrace 1503.7377+-5.3149 ? 1504.7897+-11.1490 ? 1513.4263+-19.8767 ? access-binary-trees 2215.9966+-14.9400 2209.4778+-10.7930 2209.2583+-8.5827 access-fannkuch 653.9927+-0.4076 ? 654.2470+-3.6295 ? 659.2461+-8.8497 ? access-nbody 1505.8125+-3.4616 ? 1512.2844+-18.8562 1504.7269+-1.6181 access-nsieve 1561.2185+-6.2901 1557.5055+-3.7414 ? 1563.1943+-4.0083 ? bitops-3bit-bits-in-byte 121.7315+-0.1725 121.7066+-0.4761 ? 121.9833+-1.0209 ? bitops-bits-in-byte 635.8265+-3.1425 ? 638.8021+-1.7354 ? 638.8499+-2.9275 ? bitops-nsieve-bits 1051.2815+-4.8944 ? 1052.2355+-2.7466 ^ 1048.1606+-0.9262 controlflow-recursive 1452.7735+-4.7519 ! 1464.9510+-2.5374 1464.4229+-1.7238 ! definitely 1.0080x slower crypto-aes 1665.1899+-8.3563 ? 1682.7131+-19.1745 ^ 1647.7121+-2.8481 ^ definitely 1.0106x faster crypto-md5 1200.9325+-2.5537 1197.4833+-2.2498 ^ 1186.1542+-1.5801 ^ definitely 1.0125x faster crypto-sha1 1663.0278+-5.5067 ? 1667.5052+-8.9946 ^ 1613.5453+-4.7960 ^ definitely 1.0307x faster date-format-tofte 1187.3284+-16.8142 1161.6964+-10.9893 1157.6568+-9.2259 ^ definitely 1.0256x faster date-format-xparb 1512.9535+-51.5596 1501.5062+-52.5362 1485.5623+-15.0973 might be 1.0184x faster math-cordic 1808.6301+-12.5379 1804.8007+-9.9435 ^ 1469.4609+-53.3881 ^ definitely 1.2308x faster math-partial-sums 1309.2595+-5.1149 ? 1310.7026+-1.4511 1309.5820+-2.5635 ? math-spectral-norm 1828.2603+-2.3347 ? 1831.1875+-6.4539 1827.5618+-1.3406 string-base64 513.6710+-1.4356 512.7414+-1.6932 ^ 508.0153+-1.6576 ^ definitely 1.0111x faster string-fasta 1035.2658+-4.8885 ? 1037.3973+-3.9902 1032.8390+-6.1095 string-tagcloud 381.2720+-2.4586 ? 383.9449+-2.0300 382.6807+-1.0434 ? <arithmetic> 1298.3313+-2.5344 1298.1351+-2.5999 ? 1301.4659+-3.3516 ? might be 1.0024x slower <geometric> * 1114.3807+-1.7775 1114.3791+-1.6315 ^ 1110.2069+-2.4871 might be 1.0038x faster <harmonic> 802.4670+-0.8326 ? 802.7785+-0.6887 799.8547+-2.3720 might be 1.0033x faster Old TipOfTree ConstInfer ConstInfer v. Old V8Spider: crypto 79.3744+-0.2632 79.2608+-0.2209 ? 79.5256+-0.2844 ? deltablue 100.8797+-0.5382 ? 101.0357+-0.4396 ^ 98.5235+-0.3692 ^ definitely 1.0239x faster earley-boyer 71.4267+-0.4203 ? 71.5787+-0.5025 70.9482+-0.3267 raytrace 40.4904+-0.1631 ? 40.9313+-0.6841 40.2924+-0.2402 regexp 99.0975+-0.3517 ? 99.5562+-0.7468 ^ 98.3817+-0.2380 ^ definitely 1.0073x faster richards 113.8366+-0.4246 ? 114.4113+-1.0426 ^ 109.0323+-1.5296 ^ definitely 1.0441x faster splay 45.9952+-0.3511 45.8373+-0.4730 ? 46.7443+-1.0395 ? might be 1.0163x slower <arithmetic> 78.7286+-0.1475 ? 78.9445+-0.1767 ^ 77.6354+-0.3407 ^ definitely 1.0141x faster <geometric> * 73.8801+-0.1265 ? 74.0804+-0.2001 ^ 73.1665+-0.3721 ^ definitely 1.0098x faster <harmonic> 68.7419+-0.1296 ? 68.9426+-0.2819 68.3704+-0.4320 might be 1.0054x faster Old TipOfTree ConstInfer ConstInfer v. Old Octane and V8v7: encrypt 0.46902+-0.00046 0.46806+-0.00059 0.46792+-0.00505 decrypt 8.60616+-0.00626 8.59894+-0.00786 ? 8.64715+-0.11283 ? deltablue x2 0.58615+-0.00501 0.58236+-0.00305 ^ 0.56392+-0.00403 ^ definitely 1.0394x faster earley 0.87403+-0.00909 0.86953+-0.00715 0.86162+-0.00475 might be 1.0144x faster boyer 12.56312+-0.06080 ? 12.70696+-0.24141 12.53532+-0.09966 raytrace x2 4.44842+-0.06187 ? 4.53637+-0.09862 4.43155+-0.09923 regexp x2 33.63696+-0.16438 33.51237+-0.09800 33.39958+-0.07642 richards x2 0.31403+-0.00635 0.31118+-0.00390 ^ 0.29358+-0.00309 ^ definitely 1.0697x faster splay x2 0.64415+-0.00503 0.64315+-0.00874 0.63162+-0.00327 ^ definitely 1.0198x faster navier-stokes x2 10.93590+-0.00572 ? 10.94940+-0.01488 10.94629+-0.00590 ? closure 0.42789+-0.00235 0.42606+-0.00052 ? 0.42676+-0.00104 jquery 6.14190+-0.04089 6.11014+-0.00842 ? 6.11918+-0.01048 gbemu x2 71.19315+-0.95637 ? 71.64433+-0.31485 ? 72.47514+-0.54996 ? might be 1.0180x slower mandreel x2 182.77830+-0.26305 ^ 181.49099+-0.66291 ^ 145.13108+-0.50201 ^ definitely 1.2594x faster pdfjs x2 101.86309+-0.26855 101.52660+-0.40274 101.48690+-0.36967 box2d x2 34.84515+-0.16878 ? 34.85743+-0.25357 34.53703+-0.22502 V8v7: <arithmetic> 7.72772+-0.02293 ? 7.73207+-0.02275 ^ 7.69032+-0.01526 might be 1.0049x faster <geometric> * 2.44827+-0.00726 ? 2.44869+-0.00556 ^ 2.40499+-0.00681 ^ definitely 1.0180x faster <harmonic> 0.93820+-0.00646 0.93356+-0.00395 ^ 0.90321+-0.00410 ^ definitely 1.0387x faster Octane including V8v7: <arithmetic> 35.06049+-0.08146 34.97262+-0.06440 ^ 32.18659+-0.04976 ^ definitely 1.0893x faster <geometric> * 6.99855+-0.01221 6.99482+-0.00952 ^ 6.80158+-0.01376 ^ definitely 1.0290x faster <harmonic> 1.32181+-0.00817 1.31542+-0.00487 ^ 1.27824+-0.00527 ^ definitely 1.0341x faster Old TipOfTree ConstInfer ConstInfer v. Old Kraken: ai-astar 493.555+-0.803 493.079+-0.678 ? 496.481+-4.734 ? audio-beat-detection 236.974+-1.660 236.352+-1.442 ? 237.680+-1.282 ? audio-dft 300.754+-9.631 296.825+-3.154 ? 298.421+-3.875 audio-fft 144.772+-0.348 144.446+-0.149 ^ 143.160+-0.185 ^ definitely 1.0113x faster audio-oscillator 245.129+-0.457 244.730+-0.364 244.720+-0.538 imaging-darkroom 289.926+-0.598 289.726+-0.542 289.652+-0.556 imaging-desaturate 158.437+-0.198 ? 158.633+-0.580 158.540+-0.203 ? imaging-gaussian-blur 430.918+-1.207 ^ 417.353+-0.287 ^ 366.696+-0.580 ^ definitely 1.1751x faster json-parse-financial 79.861+-0.290 ! 80.649+-0.285 80.114+-0.562 ? json-stringify-tinderbox 106.614+-0.972 105.990+-0.430 ! 109.098+-0.297 ! definitely 1.0233x slower stanford-crypto-aes 90.734+-0.746 90.059+-0.455 ? 90.062+-0.692 stanford-crypto-ccm 101.463+-0.902 100.082+-1.085 ? 100.494+-1.456 stanford-crypto-pbkdf2 262.603+-9.591 261.817+-3.564 ? 265.266+-1.668 ? might be 1.0101x slower stanford-crypto-sha256-iterative 115.328+-0.548 ? 115.616+-0.414 ? 116.147+-0.428 ? <arithmetic> * 218.362+-1.025 ^ 216.811+-0.269 ^ 214.038+-0.385 ^ definitely 1.0202x faster <geometric> 185.824+-0.652 ^ 184.921+-0.227 ^ 183.901+-0.254 ^ definitely 1.0105x faster <harmonic> 159.246+-0.417 158.743+-0.238 158.693+-0.275 might be 1.0035x faster Old TipOfTree ConstInfer ConstInfer v. Old JSRegress: adapt-to-double-divide 22.8095+-0.1505 ? 22.8709+-0.0898 22.7246+-0.0576 aliased-arguments-getbyval 0.9569+-0.0035 ? 0.9583+-0.0040 ? 0.9610+-0.0056 ? allocate-big-object 2.6257+-0.0122 ? 2.6355+-0.0203 ? 2.6505+-0.0197 ? arity-mismatch-inlining 0.9014+-0.0051 ! 0.9143+-0.0045 ? 0.9195+-0.0037 ! definitely 1.0200x slower array-access-polymorphic-structure 9.8793+-0.1233 9.7956+-0.0976 9.6965+-0.0683 might be 1.0188x faster array-nonarray-polymorhpic-access 56.5963+-0.3435 56.5801+-0.2845 56.5191+-0.5028 array-with-double-add 5.7004+-0.0203 ? 5.7645+-0.0450 5.7307+-0.0645 ? array-with-double-increment 4.3179+-0.0080 ? 4.3217+-0.0067 4.3144+-0.0445 array-with-double-mul-add 6.8268+-0.0732 ? 6.8446+-0.0989 ? 6.8777+-0.0278 ? array-with-double-sum 8.0709+-0.0841 8.0460+-0.0683 ? 8.0838+-0.0964 ? array-with-int32-add-sub 10.4845+-0.0753 ? 10.4955+-0.1392 10.3888+-0.0766 array-with-int32-or-double-sum 8.0293+-0.0650 ? 8.0713+-0.0390 ? 8.1021+-0.0548 ? ArrayBuffer-DataView-alloc-large-long-lived 121.6957+-1.4001 ? 123.3762+-2.2197 121.0325+-0.9226 ArrayBuffer-DataView-alloc-long-lived 32.6782+-1.1266 ? 35.0164+-1.5221 ^ 31.3492+-0.3938 might be 1.0424x faster ArrayBuffer-Int32Array-byteOffset 8.9970+-0.0554 8.9814+-0.0882 ^ 7.0346+-0.0562 ^ definitely 1.2790x faster ArrayBuffer-Int8Array-alloc-huge-long-lived 217.8981+-2.6617 ? 218.3701+-1.7238 218.1214+-1.0683 ? ArrayBuffer-Int8Array-alloc-large-long-lived-fragmented 168.5089+-1.1312 ^ 164.7660+-0.6732 ! 170.2658+-1.4974 ? might be 1.0104x slower ArrayBuffer-Int8Array-alloc-large-long-lived 123.4058+-1.3980 122.0156+-1.8775 ? 123.2818+-1.6288 ArrayBuffer-Int8Array-alloc-long-lived-buffer 51.2541+-1.2028 50.9293+-0.2759 50.8625+-0.3620 ArrayBuffer-Int8Array-alloc-long-lived 31.0486+-0.8730 30.2025+-0.7521 ! 31.4497+-0.2337 ? might be 1.0129x slower ArrayBuffer-Int8Array-alloc 28.5149+-1.2063 ^ 26.3635+-0.1041 ! 28.4125+-0.2348 asmjs_bool_bug 11.4874+-0.1621 ^ 11.1345+-0.1208 ^ 10.1571+-0.0441 ^ definitely 1.1310x faster basic-set 21.4774+-0.1140 ? 21.5328+-0.1828 21.2973+-0.1971 big-int-mul 5.6153+-0.0685 ? 5.6580+-0.0600 5.6548+-0.0148 ? boolean-test 4.4679+-0.0143 ? 4.4759+-0.0308 4.4206+-0.0250 ^ definitely 1.0107x faster branch-fold 4.9567+-0.0230 ? 4.9804+-0.0379 ? 4.9953+-0.0376 ? cast-int-to-double 14.2670+-0.1114 ? 14.4006+-0.0822 ^ 12.4316+-0.0916 ^ definitely 1.1476x faster cell-argument 16.5912+-0.0568 16.5591+-0.1752 ? 16.6917+-0.1536 ? cfg-simplify 3.9697+-0.0101 ? 3.9732+-0.0088 3.9713+-0.0063 ? cmpeq-obj-to-obj-other 14.0770+-0.5360 13.8792+-0.3308 ^ 12.6677+-0.5365 ^ definitely 1.1113x faster constant-test 8.8220+-0.1096 ? 8.8606+-0.0727 ? 8.9553+-0.0678 ? might be 1.0151x slower DataView-custom-properties 127.5100+-1.1530 ? 128.9706+-0.7854 ^ 126.8262+-0.9501 delay-tear-off-arguments-strictmode 3.4911+-0.0175 ? 3.5350+-0.0519 3.5147+-0.0117 ? destructuring-arguments-length 173.6541+-1.5129 171.3948+-1.8163 ? 175.2503+-2.6126 ? destructuring-arguments 8.6912+-0.0485 8.6900+-0.1071 ? 8.7288+-0.0675 ? destructuring-swap 8.5404+-0.0830 8.5171+-0.0959 ? 8.5532+-0.1127 ? direct-arguments-getbyval 0.8414+-0.0136 0.8344+-0.0068 ? 0.8534+-0.0128 ? might be 1.0144x slower double-pollution-getbyval 11.1453+-0.1562 11.1355+-0.1023 11.1254+-0.0258 double-pollution-putbyoffset 6.9511+-0.3597 6.8221+-0.0334 ? 6.8831+-0.0419 empty-string-plus-int 11.1772+-0.1071 ^ 10.8731+-0.0647 ! 11.2000+-0.1055 ? emscripten-cube2hash 52.3148+-0.7171 52.2263+-0.7355 ? 52.3375+-0.2488 ? emscripten-memops 9272.6123+-24.9598 9237.0210+-24.3818 ? 9248.2187+-27.3342 external-arguments-getbyval 2.0097+-0.0191 2.0077+-0.0169 2.0010+-0.0115 external-arguments-putbyval 3.0306+-0.0193 3.0273+-0.0189 ? 3.0323+-0.0209 ? Float32Array-matrix-mult 6.4246+-0.0876 6.4085+-0.0754 ? 6.4744+-0.1234 ? Float32Array-to-Float64Array-set 95.2276+-0.6756 ! 96.4917+-0.4695 ! 98.5679+-0.7311 ! definitely 1.0351x slower Float64Array-alloc-long-lived 110.3066+-0.7219 110.0045+-0.5300 ^ 108.2763+-0.4682 ^ definitely 1.0188x faster Float64Array-to-Int16Array-set 119.0735+-0.8367 ? 119.2173+-1.8576 116.9845+-1.2677 might be 1.0179x faster fold-double-to-int 25.7797+-0.4649 25.6166+-0.2934 25.5552+-0.1057 for-of-iterate-array-entries 8.5379+-0.0940 ? 8.6966+-0.1614 8.5934+-0.1708 ? for-of-iterate-array-keys 3.5554+-0.0740 3.5348+-0.0272 3.5260+-0.0560 for-of-iterate-array-values 3.0051+-0.0523 ? 3.0397+-0.0345 3.0097+-0.0528 ? function-dot-apply 3.1955+-0.0098 ? 3.1972+-0.0068 ? 3.2227+-0.0477 ? function-test 5.0523+-0.0641 ^ 4.9176+-0.0453 ! 5.0526+-0.0227 ? get-by-id-chain-from-try-block 7.5673+-0.0823 ? 7.6058+-0.0605 ? 7.6149+-0.0410 ? get-by-id-proto-or-self 23.4803+-0.3637 23.4063+-0.2953 23.2544+-0.2471 get-by-id-self-or-proto 23.5496+-0.9241 23.4492+-1.0060 ? 24.2684+-0.7142 ? might be 1.0305x slower get_callee_monomorphic 4.7384+-0.0339 ? 4.7886+-0.0647 ? 4.8417+-0.0300 ! definitely 1.0218x slower get_callee_polymorphic 4.5383+-0.0136 ? 4.5824+-0.0440 ^ 4.4976+-0.0113 ^ definitely 1.0091x faster HashMap-put-get-iterate-keys 43.7997+-0.2355 ? 43.9359+-0.4241 ! 47.0016+-0.6132 ! definitely 1.0731x slower HashMap-put-get-iterate 59.8639+-0.3147 ? 60.3349+-0.2163 ! 63.1178+-0.2390 ! definitely 1.0544x slower HashMap-string-put-get-iterate 54.7833+-0.3399 ^ 53.5820+-0.3141 ! 55.1113+-0.1943 ? imul-double-only 17.7650+-0.0972 ? 18.2058+-0.8810 17.8960+-0.1375 ? imul-int-only 14.9201+-0.1461 ? 15.0726+-0.2349 15.0074+-0.1686 ? imul-mixed 22.2164+-0.0787 22.2125+-0.1353 ? 22.2378+-0.0952 ? in-four-cases 25.8585+-0.0996 ? 25.9142+-0.0835 ? 25.9268+-0.0613 ? in-one-case-false 12.2129+-0.0762 ? 12.3918+-0.1434 12.1671+-0.0902 in-one-case-true 12.2912+-0.1580 12.1615+-0.1118 ? 12.3350+-0.1530 ? in-two-cases 12.9584+-0.1227 12.9274+-0.1040 ? 13.0456+-0.1616 ? indexed-properties-in-objects 4.6775+-0.0326 4.6458+-0.0552 4.6285+-0.0210 might be 1.0106x faster inline-arguments-access 1.5420+-0.0306 1.5110+-0.0750 ? 1.5503+-0.0052 ? inline-arguments-local-escape 22.4794+-0.0924 22.4316+-0.1565 ! 22.9300+-0.2251 ! definitely 1.0200x slower inline-get-scoped-var 6.9817+-0.1300 ? 7.1031+-0.0804 7.0540+-0.0898 ? might be 1.0104x slower inlined-put-by-id-transition 15.1604+-0.2362 ? 15.3648+-0.2632 15.3573+-0.1664 ? might be 1.0130x slower int-or-other-abs-then-get-by-val 9.8535+-0.1187 ? 9.8729+-0.0968 ^ 9.3529+-0.0588 ^ definitely 1.0535x faster int-or-other-abs-zero-then-get-by-val 41.8238+-0.0771 ^ 40.8356+-0.5288 ! 41.9303+-0.1342 ? int-or-other-add-then-get-by-val 10.8766+-0.0970 10.8547+-0.1525 ^ 9.7009+-0.0782 ^ definitely 1.1212x faster int-or-other-add 11.1181+-0.0733 ? 11.1306+-0.0815 11.0026+-0.1055 might be 1.0105x faster int-or-other-div-then-get-by-val 6.7571+-0.0298 ? 6.7624+-0.0332 ^ 6.4475+-0.0244 ^ definitely 1.0480x faster int-or-other-max-then-get-by-val 8.8592+-0.1091 ? 9.0039+-0.1708 8.9536+-0.1759 ? might be 1.0107x slower int-or-other-min-then-get-by-val 7.7983+-0.0361 ? 7.8221+-0.0470 ^ 7.1710+-0.0311 ^ definitely 1.0875x faster int-or-other-mod-then-get-by-val 6.1808+-0.0999 ? 6.2244+-0.0917 6.0950+-0.0808 might be 1.0141x faster int-or-other-mul-then-get-by-val 6.6563+-0.0667 ? 6.6813+-0.0714 ^ 6.4414+-0.0213 ^ definitely 1.0334x faster int-or-other-neg-then-get-by-val 8.4598+-0.0637 8.3860+-0.0962 ^ 7.9227+-0.0761 ^ definitely 1.0678x faster int-or-other-neg-zero-then-get-by-val 42.0075+-0.1510 ^ 40.3923+-0.8565 ? 46.9566+-11.2554 ? might be 1.1178x slower int-or-other-sub-then-get-by-val 10.8664+-0.0825 ? 10.9820+-0.1399 ^ 10.1188+-0.1351 ^ definitely 1.0739x faster int-or-other-sub 8.9281+-0.0765 8.8818+-0.0609 ^ 8.0830+-0.0792 ^ definitely 1.1046x faster int-overflow-local 6.5183+-0.0940 6.4631+-0.0973 ! 6.7037+-0.0804 ! definitely 1.0284x slower Int16Array-alloc-long-lived 75.4744+-0.7306 75.3618+-0.4057 ^ 72.7459+-0.2952 ^ definitely 1.0375x faster Int16Array-bubble-sort-with-byteLength 48.6752+-0.1248 ? 48.7386+-0.1274 ! 49.0732+-0.1037 ! definitely 1.0082x slower Int16Array-bubble-sort 48.1737+-0.1441 48.1617+-0.1452 ! 48.5731+-0.1434 ! definitely 1.0083x slower Int16Array-load-int-mul 2.0468+-0.0081 ? 2.0742+-0.0632 2.0624+-0.0064 ! definitely 1.0076x slower Int16Array-to-Int32Array-set 95.0097+-0.7633 ! 96.2925+-0.2024 ^ 86.1640+-1.8124 ^ definitely 1.1027x faster Int32Array-alloc-huge-long-lived 711.5034+-2.4485 709.2382+-2.7370 ? 709.3981+-2.6997 Int32Array-alloc-huge 818.5805+-6.4183 815.7407+-6.3050 ? 819.4341+-7.2667 ? Int32Array-alloc-large-long-lived 971.9801+-8.8105 970.2190+-6.0441 ? 972.8456+-6.3963 ? Int32Array-alloc-large 45.3736+-0.8574 ? 45.7057+-0.9674 ? 46.3219+-0.8697 ? might be 1.0209x slower Int32Array-alloc-long-lived 83.7577+-0.5173 ? 84.1006+-0.4842 ^ 80.9317+-0.8971 ^ definitely 1.0349x faster Int32Array-alloc 4.5118+-0.0145 4.5107+-0.0126 ? 4.5530+-0.0507 ? Int32Array-Int8Array-view-alloc 15.0046+-0.0763 14.8880+-0.1027 ! 15.1614+-0.0945 ? might be 1.0105x slower int52-spill 12.1899+-0.1115 12.0739+-0.1616 12.0577+-0.1328 might be 1.0110x faster Int8Array-alloc-long-lived 71.9219+-0.4762 71.2560+-0.7434 ^ 67.9194+-0.5820 ^ definitely 1.0589x faster Int8Array-load-with-byteLength 5.0308+-0.0147 ? 5.0432+-0.0192 ? 5.0573+-0.0072 ! definitely 1.0053x slower Int8Array-load 5.0389+-0.0085 ? 5.0422+-0.0164 ? 5.0453+-0.0408 ? integer-divide 15.5134+-0.0828 15.5109+-0.1052 ? 15.6443+-0.1717 ? integer-modulo 1.9830+-0.0155 ? 1.9884+-0.0112 ! 2.1223+-0.0189 ! definitely 1.0703x slower large-int-captured 9.1565+-0.1413 9.0936+-0.2129 ? 9.3506+-0.1847 ? might be 1.0212x slower large-int-neg 25.9457+-0.0932 25.9073+-0.1399 ? 25.9642+-0.2328 ? large-int 23.4918+-0.3344 23.3021+-0.1392 23.2450+-0.1887 might be 1.0106x faster lots-of-fields 11.1841+-0.0466 ^ 10.9684+-0.0465 ? 10.9898+-0.0694 ^ definitely 1.0177x faster make-indexed-storage 4.2448+-0.0381 4.2182+-0.0277 4.2048+-0.0927 make-rope-cse 5.9127+-0.0785 ? 6.0364+-0.1633 5.9099+-0.0787 marsaglia-larger-ints 119.5746+-0.2439 119.4272+-0.3135 119.3517+-0.1495 marsaglia-osr-entry 52.6655+-0.1362 ? 52.7665+-0.1263 52.7596+-0.1339 ? marsaglia 519.9486+-0.3890 ? 520.1472+-0.4219 520.0290+-0.8336 ? method-on-number 31.3616+-0.2276 ! 33.0326+-0.5318 32.3031+-0.7358 ? might be 1.0300x slower negative-zero-divide 0.4014+-0.0017 ? 0.4039+-0.0025 ? 0.4078+-0.0034 ! definitely 1.0159x slower negative-zero-modulo 0.3864+-0.0058 0.3845+-0.0022 ! 0.3883+-0.0014 ? negative-zero-negate 0.3711+-0.0035 0.3701+-0.0028 ? 0.3861+-0.0266 ? might be 1.0404x slower nested-function-parsing-random 394.2936+-2.2065 ^ 382.4261+-0.9052 ! 387.0992+-1.7549 ^ definitely 1.0186x faster nested-function-parsing 48.0641+-0.1292 ? 48.1419+-0.6865 ? 48.6539+-0.9856 ? might be 1.0123x slower new-array-buffer-dead 3.7805+-0.0159 ? 3.7904+-0.0185 ? 3.8066+-0.0122 ? new-array-buffer-push 10.6692+-0.1125 10.6630+-0.0856 10.6608+-0.1611 new-array-dead 28.6384+-0.0571 28.5724+-0.0978 ? 28.7558+-0.3010 ? new-array-push 6.9297+-0.0737 ? 6.9979+-0.1872 6.9046+-0.0638 number-test 4.3827+-0.0093 ? 4.4104+-0.0230 ^ 4.3152+-0.0360 ^ definitely 1.0157x faster object-closure-call 13.2244+-0.0352 ? 13.3235+-0.0918 ? 13.3578+-0.0728 ! definitely 1.0101x slower object-test 4.8301+-0.0483 ? 4.8823+-0.0808 ^ 4.7536+-0.0266 ^ definitely 1.0161x faster poly-stricteq 91.4213+-1.9449 90.5640+-1.4715 ^ 80.0481+-0.1473 ^ definitely 1.1421x faster polymorphic-structure 21.0641+-0.3284 ? 21.5131+-0.2462 21.2325+-0.2929 ? polyvariant-monomorphic-get-by-id 11.9946+-0.0679 ? 12.0978+-0.0688 12.0496+-0.0444 ? put-by-id 19.2300+-0.3155 ? 19.8659+-0.3537 19.5487+-0.3045 ? might be 1.0166x slower put-by-val-large-index-blank-indexing-type 11.1557+-0.2064 11.0030+-0.2285 ? 11.0335+-0.1093 might be 1.0111x faster rare-osr-exit-on-local 20.3186+-0.0982 ? 20.3220+-0.1131 20.2770+-0.0823 register-pressure-from-osr 31.3731+-0.2330 ? 31.6402+-0.1230 ! 32.1539+-0.0923 ! definitely 1.0249x slower simple-activation-demo 35.1986+-0.0749 ? 35.4050+-0.4254 35.1165+-0.1751 slow-array-profile-convergence 3.9881+-0.0170 ! 4.0482+-0.0174 ? 4.1407+-0.2274 ? might be 1.0383x slower slow-convergence 3.4239+-0.0147 ? 3.4753+-0.0691 3.4566+-0.0195 ? sparse-conditional 1.3478+-0.0128 ? 1.3496+-0.0097 1.3493+-0.0035 ? splice-to-remove 77.7670+-0.3664 77.2725+-0.2259 ! 78.0687+-0.4646 ? stepanov_container 11672.0730+-17.3851 ? 11876.1768+-283.0485 11669.5101+-26.4594 string-concat-object 2.9955+-0.0198 2.9888+-0.0133 ? 3.0198+-0.0349 ? string-concat-pair-object 2.9266+-0.0180 ? 2.9417+-0.0360 2.9052+-0.0238 string-concat-pair-simple 17.4830+-0.3026 17.4476+-0.2843 17.2484+-0.2723 might be 1.0136x faster string-concat-simple 17.1912+-0.3554 ? 17.5383+-0.3965 17.3712+-0.2868 ? might be 1.0105x slower string-cons-repeat 10.4967+-0.0368 ? 10.5149+-0.0443 10.4768+-0.0551 string-cons-tower 10.9854+-0.0702 ? 11.0376+-0.0275 10.9743+-0.0464 string-equality 43.6187+-0.7293 43.5188+-0.4497 ? 43.6642+-0.4313 ? string-get-by-val-big-char 13.6582+-0.0942 13.5103+-0.0766 ! 13.7061+-0.0864 ? string-get-by-val-out-of-bounds-insane 5.9432+-0.1378 ? 6.0419+-0.0985 ? 6.0465+-0.1903 ? might be 1.0174x slower string-get-by-val-out-of-bounds 5.3602+-0.0219 5.3499+-0.0094 5.3332+-0.0457 string-get-by-val 4.9161+-0.0171 4.9149+-0.0414 4.9079+-0.0190 string-hash 2.7689+-0.0077 ? 2.7837+-0.0311 ? 2.7851+-0.0224 ? string-long-ident-equality 38.5721+-0.5298 ? 39.1669+-0.6131 38.8598+-0.6125 ? string-repeat-arith 47.8751+-0.3645 ? 48.4335+-0.2590 48.1551+-0.1584 ? string-sub 96.3876+-0.3512 ! 98.2543+-1.2782 97.9476+-0.5947 ! definitely 1.0162x slower string-test 4.3067+-0.0051 ? 4.3300+-0.0331 4.3106+-0.0224 ? string-var-equality 71.4104+-0.4600 71.0679+-0.5971 ! 86.6200+-2.0061 ! definitely 1.2130x slower structure-hoist-over-transitions 3.4273+-0.0395 3.4067+-0.0169 ? 3.4085+-0.0142 switch-char-constant 3.5009+-0.0163 ? 3.5265+-0.0462 3.5023+-0.0137 ? switch-char 8.2287+-0.0586 8.1844+-0.0332 8.1554+-0.0993 switch-constant 9.2414+-0.0707 ? 9.2938+-0.1167 ? 9.3430+-0.0889 ? might be 1.0110x slower switch-string-basic-big-var 21.5836+-0.3059 21.2087+-0.0777 ^ 20.3483+-0.1323 ^ definitely 1.0607x faster switch-string-basic-big 21.6347+-0.0839 ? 21.6808+-0.0813 21.5644+-0.1032 switch-string-basic-var 21.2091+-0.1139 21.1673+-0.3029 ^ 20.2085+-0.0757 ^ definitely 1.0495x faster switch-string-basic 22.9189+-0.7718 ? 23.4817+-0.4436 ^ 22.3744+-0.4742 might be 1.0243x faster switch-string-big-length-tower-var 29.7823+-0.0485 29.7547+-0.1100 ! 29.9882+-0.1151 ! definitely 1.0069x slower switch-string-length-tower-var 23.5469+-0.0977 ? 23.5547+-0.1466 ^ 21.6857+-0.1381 ^ definitely 1.0858x faster switch-string-length-tower 17.4343+-0.1022 17.3812+-0.0517 ^ 17.0125+-0.0733 ^ definitely 1.0248x faster switch-string-short 17.4451+-0.1267 17.4094+-0.1002 ^ 17.0320+-0.2299 ^ definitely 1.0243x faster switch 16.0402+-0.0932 ? 16.1979+-0.2580 16.0075+-0.1125 tear-off-arguments-simple 2.1946+-0.0078 ! 2.2119+-0.0076 ? 2.2132+-0.0143 ? tear-off-arguments 3.5564+-0.0615 ? 3.5693+-0.0662 3.5551+-0.0198 temporal-structure 20.8821+-0.0995 ? 21.3279+-0.6023 ^ 17.0827+-0.1299 ^ definitely 1.2224x faster to-int32-boolean 22.2426+-0.1258 ? 22.3091+-0.1139 ? 22.3962+-0.2149 ? undefined-test 4.5781+-0.0438 4.5747+-0.0055 ^ 4.5161+-0.0440 might be 1.0137x faster weird-inlining-const-prop 2.3110+-0.0615 ? 2.3185+-0.0396 2.2991+-0.0078 <arithmetic> 162.0756+-0.1220 ? 162.9221+-1.6519 161.7980+-0.2469 might be 1.0017x faster <geometric> * 14.7970+-0.0114 ? 14.8109+-0.0134 ^ 14.7021+-0.0143 ^ definitely 1.0065x faster <harmonic> 5.6123+-0.0095 ? 5.6185+-0.0092 ? 5.6313+-0.0272 ? might be 1.0034x slower Old TipOfTree ConstInfer ConstInfer v. Old All benchmarks: <arithmetic> 227.8166+-0.2694 ? 228.2682+-1.0498 227.3625+-0.3214 might be 1.0020x faster <geometric> 21.2910+-0.0124 ? 21.2961+-0.0158 ^ 21.1125+-0.0131 ^ definitely 1.0085x faster <harmonic> 4.7970+-0.0113 4.7909+-0.0084 ^ 4.7475+-0.0140 ^ definitely 1.0104x faster Old TipOfTree ConstInfer ConstInfer v. Old Geomean of preferred means: <scaled-result> 49.1013+-0.0476 49.0594+-0.0500 ^ 48.5262+-0.0442 ^ definitely 1.0119x faster
Filip Pizlo
Comment 11
2013-11-19 15:49:38 PST
Created
attachment 217347
[details]
the patch Rebased and made some things a bit better.
Filip Pizlo
Comment 12
2013-11-19 21:47:03 PST
Landed in
http://trac.webkit.org/changeset/159545
Dean Jackson
Comment 13
2013-11-20 10:41:22 PST
This has caused a couple of test breakages on WK1 release (at least) e.g.
http://build.webkit.org/results/Apple%20Mavericks%20Release%20WK1%20(Tests)/r159568%20(1047)/results.html
Dean Jackson
Comment 14
2013-11-20 10:56:02 PST
Hopefully fixed in
r159573
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