<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>67554</bug_id>
          
          <creation_ts>2011-09-02 23:14:29 -0700</creation_ts>
          <short_desc>DFG variable predictions only work for local variables, not temporaries</short_desc>
          <delta_ts>2011-09-03 00:48:25 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>461754</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-09-02 23:14:29 -0700</bug_when>
    <thetext>The local variable prediction code in DFG::Graph does not work for temporaries, even though it easily could, and probably should.  This causes speculation logic to be overly conservative if a temporary is live across multiple basic blocks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461756</commentid>
    <comment_count>1</comment_count>
      <attachid>106247</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-09-02 23:18:14 -0700</bug_when>
    <thetext>Created attachment 106247
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461757</commentid>
    <comment_count>2</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-09-02 23:21:39 -0700</bug_when>
    <thetext>This is the performance:



Benchmark report for SunSpider, V8, and Kraken.

VMs tested:
&quot;TipOfTree&quot; at /Volumes/Data/pizlo/quinary/OpenSource/WebKitBuild/Release/jsc
&quot;ResizeVarPreds&quot; 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             ResizeVarPreds                                 
SunSpider:
   3d-cube                                8.0769+-0.2633          7.8421+-0.1866         might be 1.0299x faster
   3d-morph                               7.9217+-0.1421    ^     7.6166+-0.1522       ^ definitely 1.0401x faster
   3d-raytrace                            7.5407+-0.2822    ?     7.5764+-0.1596       ?
   access-binary-trees                    2.3041+-0.0434          2.2708+-0.0502         might be 1.0147x faster
   access-fannkuch                       11.9338+-0.2432         11.9160+-0.2582       
   access-nbody                           4.2317+-0.0457    ?     4.3202+-0.0630       ? might be 1.0209x slower
   access-nsieve                          2.6031+-0.1330          2.5357+-0.0514         might be 1.0266x faster
   bitops-3bit-bits-in-byte               1.7767+-0.0823          1.7109+-0.0568         might be 1.0385x faster
   bitops-bits-in-byte                    4.5004+-0.1841    ?     4.6038+-0.2552       ? might be 1.0230x slower
   bitops-bitwise-and                     3.7526+-0.1117          3.7345+-0.0547       
   bitops-nsieve-bits                     5.4707+-0.1478    ?     5.5343+-0.1609       ? might be 1.0116x slower
   controlflow-recursive                  2.0275+-0.0386    ?     2.1304+-0.0970       ? might be 1.0507x slower
   crypto-aes                             6.5957+-0.1562          6.5791+-0.1279       
   crypto-md5                             2.7703+-0.0633          2.7343+-0.0570         might be 1.0132x faster
   crypto-sha1                            2.3163+-0.0783          2.2194+-0.0506         might be 1.0437x faster
   date-format-tofte                     10.3854+-0.2497    ?    10.3987+-0.3102       ?
   date-format-xparb                      8.8015+-0.2505          8.7822+-0.2139       
   math-cordic                            6.4468+-0.0492    ?     6.4918+-0.0753       ?
   math-partial-sums                      8.1159+-0.2666          7.8487+-0.2188         might be 1.0340x faster
   math-spectral-norm                     2.5621+-0.0720          2.5355+-0.0520         might be 1.0105x faster
   regexp-dna                            10.3926+-0.0760    ?    10.4463+-0.1122       ?
   string-base64                          6.1697+-0.2178    ?     6.2009+-0.2772       ?
   string-fasta                           7.5724+-0.1146          7.4252+-0.1236         might be 1.0198x faster
   string-tagcloud                       12.3140+-0.4933         12.2323+-0.2761       
   string-unpack-code                    18.9475+-0.4868    ?    19.3867+-0.4740       ? might be 1.0232x slower
   string-validate-input                  7.4412+-0.2151    ?     7.4739+-0.2596       ?

   &lt;arithmetic&gt;                           6.6527+-0.0453          6.6364+-0.0350       
   &lt;geometric&gt;                            5.5332+-0.0355          5.5064+-0.0282       
   &lt;harmonic&gt;                             4.5285+-0.0383          4.4957+-0.0263       

                                            TipOfTree             ResizeVarPreds                                 
V8:
   crypto                                92.3651+-0.3348         92.3497+-0.5405       
   deltablue                            144.0207+-0.8783        143.1391+-1.0990       
   earley-boyer                         100.5560+-0.5754    ?   100.5589+-0.5720       ?
   raytrace                              52.9002+-0.3640         52.4050+-0.3120       
   regexp                               111.1890+-0.4171    ?   111.7704+-0.8885       ?
   richards                             246.2668+-0.7304    ?   249.7471+-4.0842       ? might be 1.0141x slower
   splay                                104.8678+-0.6789    ?   104.9036+-0.6532       ?

   &lt;arithmetic&gt;                         121.7380+-0.2460    ?   122.1249+-0.5218       ?
   &lt;geometric&gt;                          110.6561+-0.2208    ?   110.7121+-0.2636       ?
   &lt;harmonic&gt;                           101.1378+-0.2360        100.9628+-0.2184       

                                            TipOfTree             ResizeVarPreds                                 
Kraken:
   ai-astar                            1117.1826+-7.3669       1107.8483+-4.7591       
   audio-beat-detection                 479.5615+-1.5012    ?   481.1826+-1.6781       ?
   audio-dft                            437.8244+-5.0489    ?   439.3640+-3.1897       ?
   audio-fft                            373.5425+-0.4485    ?   373.8119+-1.7038       ?
   audio-oscillator                     386.2704+-2.5483        385.2089+-1.5145       
   imaging-darkroom                     560.4767+-1.9983    ^   553.5504+-1.7509       ^ definitely 1.0125x faster
   imaging-desaturate                   601.5663+-7.9396        600.6047+-6.4242       
   imaging-gaussian-blur               1756.0249+-3.8117    ?  1760.0847+-4.2614       ?
   json-parse-financial                  48.0583+-0.4829    ?    48.1131+-0.2504       ?
   json-stringify-tinderbox              73.4140+-0.3952    ?    73.4151+-0.3149       ?
   stanford-crypto-aes                  148.1695+-2.6645        146.9939+-0.8603       
   stanford-crypto-ccm                  118.6461+-4.4542    ^   113.2232+-0.5431       ^ definitely 1.0479x faster
   stanford-crypto-pbkdf2               351.8983+-2.5204        348.3458+-1.5261         might be 1.0102x faster
   stanford-crypto-sha256-iterative     134.3091+-0.8045    ^   132.5642+-0.6250       ^ definitely 1.0132x faster

   &lt;arithmetic&gt;                         470.4960+-1.0338    ^   468.8793+-0.5025       ^ definitely 1.0034x faster
   &lt;geometric&gt;                          304.3833+-1.0155    ^   302.4315+-0.3470       ^ definitely 1.0065x faster
   &lt;harmonic&gt;                           187.9824+-0.9233    ^   186.6012+-0.3609       ^ definitely 1.0074x faster

                                            TipOfTree             ResizeVarPreds                                 
All benchmarks:
   &lt;arithmetic&gt;                         161.9592+-0.3159        161.5262+-0.1479       
   &lt;geometric&gt;                           28.5211+-0.1086         28.3923+-0.0794       
   &lt;harmonic&gt;                             7.9863+-0.0660          7.9289+-0.0452</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461761</commentid>
    <comment_count>3</comment_count>
      <attachid>106247</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2011-09-02 23:33:44 -0700</bug_when>
    <thetext>Comment on attachment 106247
the patch

Passes tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461784</commentid>
    <comment_count>4</comment_count>
      <attachid>106247</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-03 00:48:21 -0700</bug_when>
    <thetext>Comment on attachment 106247
the patch

Clearing flags on attachment: 106247

Committed r94484: &lt;http://trac.webkit.org/changeset/94484&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>461785</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-09-03 00:48:25 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>106247</attachid>
            <date>2011-09-02 23:18:14 -0700</date>
            <delta_ts>2011-09-03 00:48:21 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>temppredict_patch_1.diff</filename>
            <type>text/plain</type>
            <size>1888</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gOTQ0ODApCisrKyBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAK
KzIwMTEtMDktMDIgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4KKworICAgICAgICBE
RkcgdmFyaWFibGUgcHJlZGljdGlvbnMgb25seSB3b3JrIGZvciBsb2NhbCB2YXJpYWJsZXMsIG5v
dCB0ZW1wb3JhcmllcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9Njc1NTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKyAgICAg
ICAgCisgICAgICAgIFRoaXMgYXBwZWFycyB0byBiZSBhIHNsaWdodCBzcGVlZC11cCBpbiBLcmFr
ZW4gKDAuMyUgYnV0IHNpZ25pZmljYW50KQorICAgICAgICBhbmQgbmV1dHJhbCBlbHNld2hlcmUu
CisKKyAgICAgICAgKiBkZmcvREZHR3JhcGguaDoKKyAgICAgICAgKEpTQzo6REZHOjpHcmFwaDo6
cHJlZGljdCk6CisKIDIwMTEtMDktMDIgIEZpbGlwIFBpemxvICA8ZnBpemxvQGFwcGxlLmNvbT4K
IAogICAgICAgICBERkcgSklUIHNwZWN1bGF0aW9uIGZhaWx1cmUgZG9lcyByZWNvdmVyeSBvZiBh
ZGRpdGlvbnMgaW4gcmV2ZXJzZSBhbmQKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcv
REZHR3JhcGguaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvZGZnL0RGR0dy
YXBoLmgJKHJldmlzaW9uIDk0NDc5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdH
cmFwaC5oCSh3b3JraW5nIGNvcHkpCkBAIC0xNDAsOCArMTQwLDE1IEBAIHB1YmxpYzoKICAgICAg
ICAgaWYgKG9wZXJhbmRJc0FyZ3VtZW50KG9wZXJhbmQpKSB7CiAgICAgICAgICAgICB1bnNpZ25l
ZCBhcmd1bWVudCA9IG9wZXJhbmQgKyBtX2FyZ3VtZW50UHJlZGljdGlvbnMuc2l6ZSgpICsgUmVn
aXN0ZXJGaWxlOjpDYWxsRnJhbWVIZWFkZXJTaXplOwogICAgICAgICAgICAgbWVyZ2VQcmVkaWN0
aW9uKG1fYXJndW1lbnRQcmVkaWN0aW9uc1thcmd1bWVudF0ubV92YWx1ZSwgbWFrZVByZWRpY3Rp
b24ocHJlZGljdGlvbiwgc291cmNlKSk7Ci0gICAgICAgIH0gZWxzZSBpZiAoKHVuc2lnbmVkKW9w
ZXJhbmQgPCBtX3ZhcmlhYmxlUHJlZGljdGlvbnMuc2l6ZSgpKQotICAgICAgICAgICAgbWVyZ2VQ
cmVkaWN0aW9uKG1fdmFyaWFibGVQcmVkaWN0aW9uc1tvcGVyYW5kXS5tX3ZhbHVlLCBtYWtlUHJl
ZGljdGlvbihwcmVkaWN0aW9uLCBzb3VyY2UpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorICAgICAgICAKKyAgICAgICAgaWYgKCh1bnNpZ25lZClvcGVyYW5kID49IG1fdmFyaWFi
bGVQcmVkaWN0aW9ucy5zaXplKCkpIHsKKyAgICAgICAgICAgIEFTU0VSVChvcGVyYW5kID49IDAp
OworICAgICAgICAgICAgbV92YXJpYWJsZVByZWRpY3Rpb25zLnJlc2l6ZShvcGVyYW5kICsgMSk7
CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIG1lcmdlUHJlZGljdGlvbihtX3ZhcmlhYmxl
UHJlZGljdGlvbnNbb3BlcmFuZF0ubV92YWx1ZSwgbWFrZVByZWRpY3Rpb24ocHJlZGljdGlvbiwg
c291cmNlKSk7CiAgICAgfQogICAgIAogICAgIHZvaWQgcHJlZGljdEdsb2JhbFZhcih1bnNpZ25l
ZCB2YXJOdW1iZXIsIFByZWRpY3RlZFR5cGUgcHJlZGljdGlvbiwgUHJlZGljdGlvblNvdXJjZSBz
b3VyY2UpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>