Patch forthcoming.
rdar://problem/10468892
Created attachment 115779 [details] the patch Seems like a 1% win on V8 using the V8 harness: [pizlo@nitroflex benchmarks] /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc run.js Richards: 10855 DeltaBlue: 7207 Crypto: 16171 RayTrace: 9333 EarleyBoyer: 10527 RegExp: 2252 Splay: 8964 ---- Score (version 6): 8207 [pizlo@nitroflex benchmarks] /Volumes/Data/pizlo/senary/OpenSource/WebKitBuild/Release/jsc run.js Richards: 10862 DeltaBlue: 7247 Crypto: 16377 RayTrace: 9268 EarleyBoyer: 10851 RegExp: 2270 Splay: 8997 ---- Score (version 6): 8271 [pizlo@nitroflex benchmarks] irb >> 8271/8207.0 => 1.00779822103083 >> quit [pizlo@nitroflex benchmarks] irb >> 10851/10527.0 => 1.03077799943004 >> quit Seems neutral according to my harness, running on 3 different machines.
This ends up being a much bigger deal on 32-64: Benchmark report for SunSpider, V8, and Kraken on oldmac.local (MacPro4,1). VMs tested: "TipOfTree32" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc (r100733) "FixInstanceOf32" at /Volumes/Data/pizlo/senary/OpenSource/WebKitBuild/Release/jsc (r100733) Collected 12 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. TipOfTree32 FixInstanceOf32 SunSpider: 3d-cube 11.0565+-0.0299 ^ 10.9706+-0.0216 ^ definitely 1.0078x faster 3d-morph 13.2514+-0.0265 13.2316+-0.0434 3d-raytrace 12.1318+-0.0743 ^ 11.9606+-0.0105 ^ definitely 1.0143x faster access-binary-trees 2.2790+-0.0137 2.2753+-0.0140 access-fannkuch 10.4670+-0.0196 10.4511+-0.0317 access-nbody 6.8477+-0.0034 ? 6.8616+-0.0438 ? access-nsieve 3.7028+-0.0046 ? 3.7084+-0.0062 ? bitops-3bit-bits-in-byte 1.5467+-0.0237 1.5414+-0.0256 bitops-bits-in-byte 6.0429+-0.0211 6.0359+-0.0215 bitops-bitwise-and 4.6970+-0.0295 4.6806+-0.0102 bitops-nsieve-bits 8.1776+-0.0088 ? 8.1850+-0.0094 ? controlflow-recursive 3.8011+-0.0085 ? 3.8234+-0.0388 ? crypto-aes 11.3316+-0.0411 11.2732+-0.0304 crypto-md5 3.9076+-0.0214 ? 3.9386+-0.0328 ? crypto-sha1 3.2138+-0.0117 3.2057+-0.0163 date-format-tofte 14.4072+-0.3327 14.2207+-0.1071 might be 1.0131x faster date-format-xparb 14.6767+-0.0894 ^ 14.0995+-0.0918 ^ definitely 1.0409x faster math-cordic 12.0391+-0.0448 12.0278+-0.0305 math-partial-sums 15.0837+-0.0323 ^ 14.9921+-0.0081 ^ definitely 1.0061x faster math-spectral-norm 3.2535+-0.0042 3.2525+-0.0133 regexp-dna 14.7461+-0.0388 ! 14.8953+-0.0641 ! definitely 1.0101x slower string-base64 5.4465+-0.0255 ? 5.4520+-0.0296 ? string-fasta 11.6805+-0.0770 11.6651+-0.0407 string-tagcloud 17.8951+-0.1342 17.6676+-0.1127 might be 1.0129x faster string-unpack-code 28.6359+-0.1221 ? 28.6707+-0.0910 ? string-validate-input 7.6607+-0.0558 7.6206+-0.0340 <arithmetic> * 9.5377+-0.0206 ^ 9.4887+-0.0193 ^ definitely 1.0052x faster <geometric> 7.6546+-0.0178 7.6278+-0.0204 might be 1.0035x faster <harmonic> 5.8857+-0.0224 5.8754+-0.0272 might be 1.0018x faster TipOfTree32 FixInstanceOf32 V8: crypto 117.8071+-0.4663 ? 118.0608+-0.5587 ? deltablue 225.9921+-2.0347 225.3533+-0.7155 earley-boyer 237.4998+-0.3201 ^ 211.0544+-2.9183 ^ definitely 1.1253x faster raytrace 82.8744+-0.4197 ? 83.1744+-0.4439 ? regexp 156.3446+-0.2260 ^ 154.9049+-0.2450 ^ definitely 1.0093x faster richards 243.1000+-1.1683 242.1290+-1.0782 splay 116.0900+-0.9075 115.6935+-1.7122 <arithmetic> 168.5297+-0.3302 ^ 164.3386+-0.5964 ^ definitely 1.0255x faster <geometric> * 156.6193+-0.2530 ^ 153.6933+-0.5753 ^ definitely 1.0190x faster <harmonic> 144.8763+-0.2079 ^ 143.1380+-0.5643 ^ definitely 1.0121x faster TipOfTree32 FixInstanceOf32 Kraken: ai-astar 987.4732+-1.8545 ? 987.9623+-1.4814 ? audio-beat-detection 495.2940+-0.4341 495.0814+-0.8846 audio-dft 476.3770+-2.1062 ? 476.9451+-2.4131 ? audio-fft 325.9456+-0.1807 ? 326.1011+-0.2349 ? audio-oscillator 602.9375+-2.5446 601.9519+-2.4284 imaging-darkroom 522.2273+-4.5220 ? 523.4006+-4.6703 ? imaging-desaturate 1203.9462+-1.6900 ? 1204.3335+-2.6716 ? imaging-gaussian-blur 1041.1411+-1.0568 ? 1041.4093+-1.3214 ? json-parse-financial 90.6251+-0.1707 ? 90.8215+-0.1234 ? json-stringify-tinderbox 139.8089+-0.2583 ? 140.4707+-0.5278 ? stanford-crypto-aes 165.6960+-0.7367 ? 165.7563+-0.4304 ? stanford-crypto-ccm 157.1189+-0.4360 ! 159.0179+-0.5495 ! definitely 1.0121x slower stanford-crypto-pbkdf2 316.5895+-0.6521 ? 316.8845+-0.2622 ? stanford-crypto-sha256-iterative 127.9855+-0.5210 127.8547+-0.2938 <arithmetic> * 475.2261+-0.4900 ? 475.5708+-0.5859 ? might be 1.0007x slower <geometric> 349.1768+-0.3579 ? 349.7284+-0.3707 ? might be 1.0016x slower <harmonic> 253.9755+-0.3082 ! 254.6060+-0.2736 ! definitely 1.0025x slower TipOfTree32 FixInstanceOf32 All benchmarks: <arithmetic> 171.9330+-0.1741 ^ 171.3844+-0.2220 ^ definitely 1.0032x faster <geometric> 37.4431+-0.0565 ^ 37.2831+-0.0692 ^ definitely 1.0043x faster <harmonic> 10.3961+-0.0387 10.3773+-0.0469 might be 1.0018x faster TipOfTree32 FixInstanceOf32 Geomean of preferred means: <scaled-result> 89.2062+-0.0913 ^ 88.5165+-0.1512 ^ definitely 1.0078x faster
Comment on attachment 115779 [details] the patch r=-me
Landed in http://trac.webkit.org/changeset/100829