Bug 73515 - 32 bit DFG should handle logicalNot slow case instead of simply bailing out
Summary: 32 bit DFG should handle logicalNot slow case instead of simply bailing out
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-11-30 20:29 PST by Yuqiang Xian
Modified: 2011-11-30 21:39 PST (History)
4 users (show)

See Also:


Attachments
the patch (3.13 KB, patch)
2011-11-30 20:35 PST, Yuqiang Xian
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Yuqiang Xian 2011-11-30 20:29:35 PST
Some cases don't benefit from DFG due to this, e.g. imaging-desaturate in Kraken benchmark. 64 bit DFG handles the slow case so should the 32 bit DFG.
Comment 1 Yuqiang Xian 2011-11-30 20:35:23 PST
Created attachment 117319 [details]
the patch

11% on Kraken, mostly due to 3X on imaging-desaturate, tested on Linux ia32.

VMs tested:
"TipOfTree" at /home/yxian/WebKit_orig/WebKitBuild/Release/Source/JavaScriptCore/shell/jsc_efl
"LogicalNotFix" at /mnt/supplement/WebKit/WebKitBuild/Release_efl/Source/JavaScriptCore/shell/jsc_efl

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             LogicalNotFix                                  
SunSpider:
   3d-cube                                8.1618+-0.0375          8.1486+-0.0308       
   3d-morph                              10.2725+-0.0570    ?    10.2857+-0.0470       ?
   3d-raytrace                            9.5796+-0.0393    ?     9.5859+-0.0447       ?
   access-binary-trees                    1.8881+-0.0328          1.8811+-0.0320       
   access-fannkuch                        9.5226+-0.0440    ?     9.5402+-0.0391       ?
   access-nbody                           5.3372+-0.0442    ?     5.3480+-0.0443       ?
   access-nsieve                          3.7130+-0.0260          3.7116+-0.0135       
   bitops-3bit-bits-in-byte               1.1662+-0.0346          1.1603+-0.0305       
   bitops-bits-in-byte                    4.6981+-0.0244          4.6803+-0.0386       
   bitops-bitwise-and                     4.2485+-0.0207    ?     4.2492+-0.0316       ?
   bitops-nsieve-bits                     6.6778+-0.0717          6.6761+-0.0932       
   controlflow-recursive                  2.9437+-0.0433    ?     2.9470+-0.0360       ?
   crypto-aes                             9.8420+-0.0631          9.8275+-0.0616       
   crypto-md5                             3.5909+-0.0354    ?     3.6206+-0.1322       ?
   crypto-sha1                            2.8283+-0.0449    ?     2.8637+-0.0817       ? might be 1.0125x slower
   date-format-tofte                     11.7751+-0.0254    ?    11.7969+-0.0439       ?
   date-format-xparb                     11.7065+-0.7856         11.4490+-0.0504         might be 1.0225x faster
   math-cordic                            9.1791+-0.0381          9.1594+-0.0408       
   math-partial-sums                     14.0202+-0.0616    ?    14.0333+-0.0477       ?
   math-spectral-norm                     2.5369+-0.0418          2.5229+-0.0312       
   regexp-dna                            11.9206+-0.0589         11.9128+-0.0532       
   string-base64                          5.3255+-0.9732          4.9179+-0.0486         might be 1.0829x faster
   string-fasta                          10.5078+-0.0505    ?    10.5130+-0.0682       ?
   string-tagcloud                       15.7834+-0.0443    ?    15.8327+-0.0587       ?
   string-unpack-code                    27.0578+-0.1549    !    27.3788+-0.0555       ! definitely 1.0119x slower
   string-validate-input                  7.2393+-0.0398    ^     7.1573+-0.0247       ^ definitely 1.0115x faster

   <arithmetic> *                         8.1355+-0.0508          8.1231+-0.0184       
   <geometric>                            6.4627+-0.0374          6.4467+-0.0172       
   <harmonic>                             4.9004+-0.0295          4.8889+-0.0210       

                                            TipOfTree             LogicalNotFix                                  
V8:
   crypto                                91.9812+-0.2116    ?    92.2728+-0.4610       ?
   deltablue                            170.0262+-1.4669        168.1956+-0.9159         might be 1.0109x faster
   earley-boyer                         132.5798+-0.1362        132.4307+-0.1731       
   raytrace                              61.5676+-0.7737         61.1889+-0.4651       
   regexp                               128.2276+-0.2859    ?   128.6608+-0.2597       ?
   richards                             174.9580+-1.1185    ?   175.3891+-0.8095       ?
   splay                                126.1295+-0.5243    ?   126.3526+-0.4069       ?

   <arithmetic>                         126.4957+-0.3242        126.3558+-0.3078       
   <geometric> *                        120.1337+-0.3239        120.0105+-0.3233       
   <harmonic>                           112.9274+-0.4164        112.7808+-0.3782       

                                            TipOfTree             LogicalNotFix                                  
Kraken:
   ai-astar                             784.3388+-1.9146        782.6245+-0.8761       
   audio-beat-detection                 386.8216+-5.0720        386.7333+-5.8225       
   audio-dft                            352.7186+-1.6542    ?   354.1336+-2.2658       ?
   audio-fft                            245.5192+-2.5617        243.8729+-0.3570       
   audio-oscillator                     343.1407+-3.1949    ?   343.5626+-3.2825       ?
   imaging-darkroom                     403.2555+-3.8355        402.5282+-3.5365       
   imaging-desaturate                   886.6465+-1.1722    ^   289.1595+-1.3942       ^ definitely 3.0663x faster
   imaging-gaussian-blur                689.2448+-0.2488    ?   695.2369+-9.1836       ?
   json-parse-financial                  73.2286+-0.4407    ?    73.3883+-0.5363       ?
   json-stringify-tinderbox             124.6627+-0.2702        124.2101+-0.2466       
   stanford-crypto-aes                  130.9747+-0.2462    ?   131.8741+-0.6689       ?
   stanford-crypto-ccm                  131.4426+-0.4566        130.7399+-0.6726       
   stanford-crypto-pbkdf2               278.4486+-1.4559        278.4281+-0.5915       
   stanford-crypto-sha256-iterative     109.1965+-0.2393    ?   109.3319+-0.6886       ?

   <arithmetic> *                       352.8314+-0.4333    ^   310.4160+-0.8423       ^ definitely 1.1366x faster
   <geometric>                          269.4075+-0.4093    ^   248.7556+-0.4644       ^ definitely 1.0830x faster
   <harmonic>                           204.6334+-0.3938    ^   197.9293+-0.4193       ^ definitely 1.0339x faster

                                            TipOfTree             LogicalNotFix                                  
All benchmarks:
   <arithmetic>                         128.4390+-0.1227    ^   115.7769+-0.2885       ^ definitely 1.1094x faster
   <geometric>                           30.3388+-0.0994    ^    29.5816+-0.0617       ^ definitely 1.0256x faster
   <harmonic>                             8.6458+-0.0509          8.6223+-0.0362       

                                            TipOfTree             LogicalNotFix                                  
Geomean of preferred means:
   <scaled-result>                       70.1239+-0.1509    ^    67.1367+-0.1453       ^ definitely 1.0445x faster
Comment 2 Filip Pizlo 2011-11-30 20:37:20 PST
Comment on attachment 117319 [details]
the patch

r=me  Impressive speed-up! :-)
Comment 3 Yuqiang Xian 2011-11-30 21:01:58 PST
Landed as r101598: http://trac.webkit.org/changeset/101598
Comment 4 Geoffrey Garen 2011-11-30 21:39:17 PST
Woohoo!