Bug 68143

Summary: Value profiles collect no information for global variables
Product: WebKit Reporter: Filip Pizlo <fpizlo>
Component: JavaScriptCoreAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: barraclough, fpizlo, ggaren, oliver
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Attachments:
Description Flags
the patch ggaren: review+

Filip Pizlo
Reported 2011-09-14 23:46:57 PDT
Value profiles used by tiered compilation collect no information for global variable loads, even though they probably should do so just like other property accesses.
Attachments
the patch (3.65 KB, patch)
2011-09-14 23:50 PDT, Filip Pizlo
ggaren: review+
Filip Pizlo
Comment 1 2011-09-14 23:47:44 PDT
Doing this appears to produce a 17% speed-up on string-fasta. Benchmark report for SunSpider, V8, and Kraken. VMs tested: "TipOfTree" at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc "GlobalVarProfile" at /Volumes/Data/pizlo/septenary/OpenSource/WebKitBuild/Release/jsc Collected 12 samples per benchmark/VM, with 4 VM invocations per benchmark. 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 GlobalVarProfile SunSpider: 3d-cube 7.8082+-0.1079 ? 7.8471+-0.1885 ? 3d-morph 7.4736+-0.1019 7.3982+-0.1500 might be 1.0102x faster 3d-raytrace 7.5719+-0.0925 ? 7.7841+-0.1691 ? might be 1.0280x slower access-binary-trees 2.3421+-0.1033 ? 2.4316+-0.1598 ? might be 1.0382x slower access-fannkuch 11.6264+-0.2108 11.6090+-0.2593 access-nbody 4.2754+-0.1636 4.2182+-0.0761 might be 1.0136x faster access-nsieve 2.6933+-0.1160 2.6595+-0.0790 might be 1.0127x faster bitops-3bit-bits-in-byte 1.7263+-0.0730 1.6892+-0.0361 might be 1.0219x faster bitops-bits-in-byte 2.7137+-0.0399 ? 2.7880+-0.0571 ? might be 1.0274x slower bitops-bitwise-and 3.5911+-0.0934 3.5841+-0.0896 bitops-nsieve-bits 5.3006+-0.0913 ? 5.4109+-0.2121 ? might be 1.0208x slower controlflow-recursive 1.9564+-0.0463 ? 2.0176+-0.0574 ? might be 1.0313x slower crypto-aes 6.9636+-0.2600 6.9293+-0.2545 crypto-md5 2.6808+-0.0224 ? 2.7667+-0.0955 ? might be 1.0321x slower crypto-sha1 2.1628+-0.0512 2.1432+-0.0254 date-format-tofte 10.4746+-0.2961 10.2954+-0.3917 might be 1.0174x faster date-format-xparb 8.7510+-0.2551 ? 8.9827+-0.2189 ? might be 1.0265x slower math-cordic 6.2209+-0.1250 ? 6.2881+-0.1458 ? might be 1.0108x slower math-partial-sums 7.4749+-0.1750 7.3382+-0.1338 might be 1.0186x faster math-spectral-norm 2.6076+-0.0877 ? 2.6086+-0.0426 ? regexp-dna 10.9258+-0.1886 ? 10.9681+-0.2181 ? string-base64 5.9446+-0.2683 5.7639+-0.2387 might be 1.0314x faster string-fasta 8.3444+-0.2235 ^ 7.1399+-0.1846 ^ definitely 1.1687x faster string-tagcloud 11.9497+-0.3133 ? 12.0223+-0.3088 ? string-unpack-code 18.8324+-0.3925 18.7539+-0.4277 string-validate-input 6.7391+-0.2165 6.7018+-0.1905 <arithmetic> 6.5058+-0.0207 6.4669+-0.0384 <geometric> 5.3515+-0.0207 5.3347+-0.0266 <harmonic> 4.3471+-0.0316 ? 4.3528+-0.0230 ? TipOfTree GlobalVarProfile V8: crypto 83.6288+-0.9219 83.4868+-0.7196 deltablue 247.5050+-2.4194 244.5040+-1.6395 might be 1.0123x faster earley-boyer 94.9656+-0.4355 ? 95.2173+-1.1138 ? raytrace 72.1248+-0.7492 ? 73.4037+-0.6232 ? might be 1.0177x slower regexp 106.7957+-0.3336 ? 107.2530+-0.6605 ? richards 217.2272+-1.3942 ? 218.5755+-0.6407 ? splay 98.7647+-0.4745 ? 98.8252+-0.4361 ? <arithmetic> 131.5731+-0.3473 ? 131.6094+-0.3043 ? <geometric> 118.3221+-0.1812 ? 118.6175+-0.2684 ? <harmonic> 108.5373+-0.1645 ? 109.0019+-0.3074 ? TipOfTree GlobalVarProfile Kraken: ai-astar 633.1555+-5.7432 630.8679+-4.6809 audio-beat-detection 471.2182+-1.7112 ! 477.0400+-2.6966 ! definitely 1.0124x slower audio-dft 421.4834+-3.5459 419.5688+-2.7914 audio-fft 367.7237+-1.1684 ? 369.3817+-1.6521 ? audio-oscillator 319.0198+-0.8527 ^ 315.8485+-1.0662 ^ definitely 1.0100x faster imaging-darkroom 414.5780+-0.8529 ! 418.2511+-1.9829 ! definitely 1.0089x slower imaging-desaturate 208.9592+-1.0865 208.1463+-0.3312 imaging-gaussian-blur 1730.6572+-4.2407 1729.9792+-2.8306 json-parse-financial 48.1279+-0.2019 ? 48.5082+-0.3040 ? json-stringify-tinderbox 69.0969+-0.5589 68.8286+-0.5030 stanford-crypto-aes 145.7341+-0.7048 ? 145.9337+-0.8582 ? stanford-crypto-ccm 111.9191+-0.9876 ? 112.3584+-0.6948 ? stanford-crypto-pbkdf2 401.2080+-3.4416 397.3857+-2.1064 stanford-crypto-sha256-iterative 149.8334+-0.5571 149.6679+-0.6379 <arithmetic> 392.3367+-0.7224 392.2690+-0.6121 <geometric> 262.0689+-0.5519 ? 262.1030+-0.4722 ? <harmonic> 175.1691+-0.4898 ? 175.4169+-0.5955 ? TipOfTree GlobalVarProfile All benchmarks: <arithmetic> 140.0612+-0.2171 140.0249+-0.1915 <geometric> 27.0469+-0.0586 27.0109+-0.0684 <harmonic> 7.6729+-0.0544 ? 7.6833+-0.0396 ?
Filip Pizlo
Comment 2 2011-09-14 23:50:14 PDT
Created attachment 107466 [details] the patch
Geoffrey Garen
Comment 3 2011-09-15 11:41:28 PDT
Comment on attachment 107466 [details] the patch r=me
Filip Pizlo
Comment 4 2011-09-15 12:55:49 PDT
Landed in r95219.
Note You need to log in before you can comment on or make changes to this bug.