Bug 75160

Summary: DFG should not speculate array even when predictions say that the base is not an array
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: JavaScriptCoreAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal Keywords: InRadar
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Attachments:
Description Flags
the patch oliver: review+

Filip Pizlo
Reported 2011-12-22 20:07:26 PST
Patch forthcoming.
Attachments
the patch (15.49 KB, patch)
2011-12-22 20:15 PST, Filip Pizlo
oliver: review+
Filip Pizlo
Comment 1 2011-12-22 20:07:34 PST
The performance looks good. Benchmark report for SunSpider, V8, and Kraken on nitroflex (MacBookPro8,2). VMs tested: "TipOfTree" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc (r103599) "FixArraySpec" at /Volumes/Data/pizlo/septenary/OpenSource/WebKitBuild/Release/jsc (r103599) 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. TipOfTree FixArraySpec SunSpider: 3d-cube 5.4322+-0.1349 ? 5.6316+-0.1825 ? might be 1.0367x slower 3d-morph 7.6241+-0.1336 ? 7.8998+-0.1427 ? might be 1.0362x slower 3d-raytrace 7.2338+-0.2181 6.9108+-0.1660 might be 1.0467x faster access-binary-trees 1.4657+-0.0475 ? 1.5028+-0.0440 ? might be 1.0253x slower access-fannkuch 5.9223+-0.1049 5.8462+-0.1305 might be 1.0130x faster access-nbody 3.1700+-0.0650 ? 3.2309+-0.0952 ? might be 1.0192x slower access-nsieve 2.5472+-0.0812 2.5276+-0.0834 bitops-3bit-bits-in-byte 1.2227+-0.0263 ? 1.2359+-0.0251 ? might be 1.0107x slower bitops-bits-in-byte 2.3323+-0.0647 ? 2.3852+-0.0631 ? might be 1.0227x slower bitops-bitwise-and 3.2318+-0.0509 3.1611+-0.0591 might be 1.0224x faster bitops-nsieve-bits 5.5611+-0.1517 ? 5.6240+-0.1805 ? might be 1.0113x slower controlflow-recursive 2.0085+-0.0354 2.0031+-0.0451 crypto-aes 7.2740+-0.1930 7.2613+-0.1684 crypto-md5 2.4196+-0.0830 2.2977+-0.0561 might be 1.0531x faster crypto-sha1 2.1611+-0.0569 ^ 2.0626+-0.0211 ^ definitely 1.0477x faster date-format-tofte 9.6833+-0.1646 ? 9.8702+-0.2443 ? might be 1.0193x slower date-format-xparb 9.3604+-0.2243 9.0744+-0.2438 might be 1.0315x faster math-cordic 6.7665+-0.1802 ^ 6.4100+-0.0995 ^ definitely 1.0556x faster math-partial-sums 7.4987+-0.1460 7.3974+-0.1758 might be 1.0137x faster math-spectral-norm 2.4264+-0.0600 ^ 2.2969+-0.0403 ^ definitely 1.0564x faster regexp-dna 7.8045+-0.1498 ? 7.8713+-0.1829 ? string-base64 4.3162+-0.0961 ? 4.3197+-0.0836 ? string-fasta 6.5668+-0.1685 ? 6.6606+-0.1461 ? might be 1.0143x slower string-tagcloud 11.2059+-0.3212 11.1837+-0.3368 string-unpack-code 18.6572+-0.2556 ! 19.4146+-0.4259 ! definitely 1.0406x slower string-validate-input 5.2159+-0.1394 ? 5.3330+-0.1395 ? might be 1.0225x slower <arithmetic> * 5.7349+-0.0228 ? 5.7466+-0.0250 ? might be 1.0020x slower <geometric> 4.6434+-0.0244 4.6287+-0.0174 might be 1.0032x faster <harmonic> 3.7042+-0.0305 3.6860+-0.0222 might be 1.0049x faster TipOfTree FixArraySpec V8: crypto 71.8487+-1.1093 ? 72.5179+-1.3046 ? deltablue 148.8421+-1.8166 ? 150.0586+-2.0018 ? earley-boyer 81.0571+-1.3352 80.1978+-1.2853 might be 1.0107x faster raytrace 48.6882+-0.6206 48.2623+-0.5122 regexp 103.5850+-1.2806 103.2427+-1.3837 richards 119.6485+-2.2200 ? 119.9926+-1.6852 ? splay 72.9114+-1.1946 71.6281+-1.0240 might be 1.0179x faster <arithmetic> 92.3687+-0.5766 92.2714+-0.4434 might be 1.0011x faster <geometric> * 87.1162+-0.4927 86.8652+-0.3687 might be 1.0029x faster <harmonic> 82.0861+-0.4613 81.7185+-0.3335 might be 1.0045x faster TipOfTree FixArraySpec Kraken: ai-astar 487.4671+-9.1501 ? 490.8994+-8.8718 ? audio-beat-detection 173.1296+-2.4283 ? 174.0663+-2.0968 ? audio-dft 274.2012+-6.0389 ? 289.0841+-13.0264 ? might be 1.0543x slower audio-fft 105.7167+-1.3699 ? 106.2648+-2.2146 ? audio-oscillator 251.0460+-3.1180 ? 253.5859+-2.6535 ? might be 1.0101x slower imaging-darkroom 274.2502+-7.4916 270.1415+-4.3273 might be 1.0152x faster imaging-desaturate 213.0163+-2.7294 ^ 207.4625+-2.3983 ^ definitely 1.0268x faster imaging-gaussian-blur 490.7493+-6.7053 ? 491.2765+-4.1039 ? json-parse-financial 57.8758+-0.9378 57.7195+-0.6103 json-stringify-tinderbox 71.9223+-0.8206 ! 75.0309+-1.1276 ! definitely 1.0432x slower stanford-crypto-aes 97.7883+-1.6026 ? 98.5023+-1.1097 ? stanford-crypto-ccm 101.6361+-1.4094 98.6146+-1.8832 might be 1.0306x faster stanford-crypto-pbkdf2 187.9598+-2.5805 ! 196.0925+-4.6267 ! definitely 1.0433x slower stanford-crypto-sha256-iterative 83.2351+-0.8420 ? 84.1820+-1.4587 ? might be 1.0114x slower <arithmetic> * 204.9996+-0.8833 ? 206.6373+-1.2806 ? might be 1.0080x slower <geometric> 165.2800+-0.5767 ? 166.5716+-0.9356 ? might be 1.0078x slower <harmonic> 134.7099+-0.4094 ? 135.7406+-0.8223 ? might be 1.0077x slower TipOfTree FixArraySpec All benchmarks: <arithmetic> 77.9933+-0.2958 ? 78.4731+-0.3703 ? might be 1.0062x slower <geometric> 20.8247+-0.0618 ? 20.8276+-0.0601 ? might be 1.0001x slower <harmonic> 6.5202+-0.0522 6.4894+-0.0382 might be 1.0048x faster TipOfTree FixArraySpec Geomean of preferred means: <scaled-result> 46.7865+-0.1434 ? 46.8973+-0.1285 ? might be 1.0024x slower
Filip Pizlo
Comment 2 2011-12-22 20:08:30 PST
Filip Pizlo
Comment 3 2011-12-22 20:15:04 PST
Created attachment 120429 [details] the patch
Filip Pizlo
Comment 4 2011-12-22 22:02:10 PST
Note You need to log in before you can comment on or make changes to this bug.