<?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>123638</bug_id>
          
          <creation_ts>2013-11-01 14:58:59 -0700</creation_ts>
          <short_desc>FTL should use a simple optimization pipeline by default</short_desc>
          <delta_ts>2013-11-01 19:24:20 -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>
          
          <blocked>112840</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>barraclough</cc>
    
    <cc>ggaren</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mhahnenberg</cc>
    
    <cc>msaboff</cc>
    
    <cc>nrotem</cc>
    
    <cc>oliver</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>946043</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-11-01 14:58:59 -0700</bug_when>
    <thetext>My experiments show a 20% speed-up on imagine-gaussian-blur</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946044</commentid>
    <comment_count>1</comment_count>
      <attachid>215764</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-11-01 14:59:56 -0700</bug_when>
    <thetext>Created attachment 215764
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946050</commentid>
    <comment_count>2</comment_count>
    <who name="Nadav Rotem">nrotem</who>
    <bug_when>2013-11-01 15:12:02 -0700</bug_when>
    <thetext>270        llvm-&gt;AddInstructionCombiningPass(modulePasses);
271        llvm-&gt;AddPromoteMemoryToRegisterPass(modulePasses);

I imagine that you are running instcombine and constantprop before mem2reg because the code you generate does not have too many allocas. Have you considered running earlyCSE instead of GVN ?

Have you considered adding LICM or JumpThreading ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946052</commentid>
    <comment_count>3</comment_count>
      <attachid>215764</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2013-11-01 15:13:36 -0700</bug_when>
    <thetext>Comment on attachment 215764
the patch

View in context: https://bugs.webkit.org/attachment.cgi?id=215764&amp;action=review

r=me

&gt; Source/JavaScriptCore/ftl/FTLCompile.cpp:271
&gt; +        llvm-&gt;AddPromoteMemoryToRegisterPass(modulePasses);

Shouldn&apos;t mem2reg always go first? (My understanding is that it&apos;s a simple transformation that eliminates a lot of dummy code, and relies only on convention and not on any other optimizations.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946082</commentid>
    <comment_count>4</comment_count>
    <who name="Nadav Rotem">nrotem</who>
    <bug_when>2013-11-01 16:08:29 -0700</bug_when>
    <thetext>mem2reg should go first, unless we know that FTL generates all of its computations in registers. I know that this is the case for all of the arithmetic calculations but I am not sure about the other stuff.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946167</commentid>
    <comment_count>5</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-11-01 19:21:41 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; mem2reg should go first, unless we know that FTL generates all of its computations in registers. I know that this is the case for all of the arithmetic calculations but I am not sure about the other stuff.

Y&apos;all have a point.  LowerDFGToLLVM produces very few alloca&apos;s so it probably doesn&apos;t matter *too* much.  I&apos;ll changed it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>946168</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2013-11-01 19:24:20 -0700</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/158482</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215764</attachid>
            <date>2013-11-01 14:59:56 -0700</date>
            <delta_ts>2013-11-01 15:13:36 -0700</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>5243</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTU4NDU4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBA
CisyMDEzLTExLTAxICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
RlRMIHNob3VsZCB1c2UgYSBzaW1wbGUgb3B0aW1pemF0aW9uIHBpcGVsaW5lIGJ5IGRlZmF1bHQK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzYzOAor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorICAgICAgICAKKyAgICAgICAg
MjAlIHNwZWVkLXVwIG9uIGltYWdpbmUtZ2F1c3NpYW4tYmx1ciwgd2hlbiBjb21iaW5lZCB3aXRo
IC0tZnRsVXNlc1N0YWNrbWFwcz10cnVlLgorCisgICAgICAgICogZnRsL0ZUTENvbXBpbGUuY3Bw
OgorICAgICAgICAoSlNDOjpGVEw6OmNvbXBpbGUpOgorICAgICAgICAqIHJ1bnRpbWUvT3B0aW9u
cy5oOgorCiAyMDEzLTEwLTMxICBPbGl2ZXIgSHVudCAgPG9saXZlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgSmF2YVNjcmlwdCBwYXJzZXIgYnVnCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZnRsL0ZUTENvbXBpbGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9m
dGwvRlRMQ29tcGlsZS5jcHAJKHJldmlzaW9uIDE1ODQ1OCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9mdGwvRlRMQ29tcGlsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2MCwyNiArMjYwLDQy
IEBAIHZvaWQgY29tcGlsZShTdGF0ZSYgc3RhdGUpCiAgICAgICAgIENSQVNIKCk7CiAgICAgfQog
Ci0gICAgTExWTVBhc3NNYW5hZ2VyQnVpbGRlclJlZiBwYXNzQnVpbGRlciA9IGxsdm0tPlBhc3NN
YW5hZ2VyQnVpbGRlckNyZWF0ZSgpOwotICAgIGxsdm0tPlBhc3NNYW5hZ2VyQnVpbGRlclNldE9w
dExldmVsKHBhc3NCdWlsZGVyLCBPcHRpb25zOjpsbHZtT3B0aW1pemF0aW9uTGV2ZWwoKSk7Ci0g
ICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyU2V0U2l6ZUxldmVsKHBhc3NCdWlsZGVyLCBPcHRp
b25zOjpsbHZtU2l6ZUxldmVsKCkpOworICAgIExMVk1QYXNzTWFuYWdlclJlZiBmdW5jdGlvblBh
c3NlcyA9IDA7CisgICAgTExWTVBhc3NNYW5hZ2VyUmVmIG1vZHVsZVBhc3NlczsKICAgICAKLSAg
ICBMTFZNUGFzc01hbmFnZXJSZWYgZnVuY3Rpb25QYXNzZXMgPSBsbHZtLT5DcmVhdGVGdW5jdGlv
blBhc3NNYW5hZ2VyRm9yTW9kdWxlKHN0YXRlLm1vZHVsZSk7Ci0gICAgTExWTVBhc3NNYW5hZ2Vy
UmVmIG1vZHVsZVBhc3NlcyA9IGxsdm0tPkNyZWF0ZVBhc3NNYW5hZ2VyKCk7Ci0gICAgCi0gICAg
bGx2bS0+QWRkVGFyZ2V0RGF0YShsbHZtLT5HZXRFeGVjdXRpb25FbmdpbmVUYXJnZXREYXRhKGVu
Z2luZSksIG1vZHVsZVBhc3Nlcyk7Ci0gICAgCi0gICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVy
UG9wdWxhdGVGdW5jdGlvblBhc3NNYW5hZ2VyKHBhc3NCdWlsZGVyLCBmdW5jdGlvblBhc3Nlcyk7
Ci0gICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyUG9wdWxhdGVNb2R1bGVQYXNzTWFuYWdlcihw
YXNzQnVpbGRlciwgbW9kdWxlUGFzc2VzKTsKLSAgICAKLSAgICBsbHZtLT5QYXNzTWFuYWdlckJ1
aWxkZXJEaXNwb3NlKHBhc3NCdWlsZGVyKTsKLQotICAgIGxsdm0tPkluaXRpYWxpemVGdW5jdGlv
blBhc3NNYW5hZ2VyKGZ1bmN0aW9uUGFzc2VzKTsKLSAgICBmb3IgKExWYWx1ZSBmdW5jdGlvbiA9
IGxsdm0tPkdldEZpcnN0RnVuY3Rpb24oc3RhdGUubW9kdWxlKTsgZnVuY3Rpb247IGZ1bmN0aW9u
ID0gbGx2bS0+R2V0TmV4dEZ1bmN0aW9uKGZ1bmN0aW9uKSkKLSAgICAgICAgbGx2bS0+UnVuRnVu
Y3Rpb25QYXNzTWFuYWdlcihmdW5jdGlvblBhc3NlcywgZnVuY3Rpb24pOwotICAgIGxsdm0tPkZp
bmFsaXplRnVuY3Rpb25QYXNzTWFuYWdlcihmdW5jdGlvblBhc3Nlcyk7Ci0gICAgCi0gICAgbGx2
bS0+UnVuUGFzc01hbmFnZXIobW9kdWxlUGFzc2VzLCBzdGF0ZS5tb2R1bGUpOworICAgIGlmIChP
cHRpb25zOjpsbHZtU2ltcGxlT3B0KCkpIHsKKyAgICAgICAgbW9kdWxlUGFzc2VzID0gbGx2bS0+
Q3JlYXRlUGFzc01hbmFnZXIoKTsKKyAgICAgICAgbGx2bS0+QWRkVGFyZ2V0RGF0YShsbHZtLT5H
ZXRFeGVjdXRpb25FbmdpbmVUYXJnZXREYXRhKGVuZ2luZSksIG1vZHVsZVBhc3Nlcyk7CisgICAg
ICAgIGxsdm0tPkFkZENvbnN0YW50UHJvcGFnYXRpb25QYXNzKG1vZHVsZVBhc3Nlcyk7CisgICAg
ICAgIGxsdm0tPkFkZEluc3RydWN0aW9uQ29tYmluaW5nUGFzcyhtb2R1bGVQYXNzZXMpOworICAg
ICAgICBsbHZtLT5BZGRQcm9tb3RlTWVtb3J5VG9SZWdpc3RlclBhc3MobW9kdWxlUGFzc2VzKTsK
KyAgICAgICAgbGx2bS0+QWRkQmFzaWNBbGlhc0FuYWx5c2lzUGFzcyhtb2R1bGVQYXNzZXMpOwor
ICAgICAgICBsbHZtLT5BZGRUeXBlQmFzZWRBbGlhc0FuYWx5c2lzUGFzcyhtb2R1bGVQYXNzZXMp
OworICAgICAgICBsbHZtLT5BZGRHVk5QYXNzKG1vZHVsZVBhc3Nlcyk7CisgICAgICAgIGxsdm0t
PkFkZENGR1NpbXBsaWZpY2F0aW9uUGFzcyhtb2R1bGVQYXNzZXMpOworICAgICAgICBsbHZtLT5S
dW5QYXNzTWFuYWdlcihtb2R1bGVQYXNzZXMsIHN0YXRlLm1vZHVsZSk7CisgICAgfSBlbHNlIHsK
KyAgICAgICAgTExWTVBhc3NNYW5hZ2VyQnVpbGRlclJlZiBwYXNzQnVpbGRlciA9IGxsdm0tPlBh
c3NNYW5hZ2VyQnVpbGRlckNyZWF0ZSgpOworICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxk
ZXJTZXRPcHRMZXZlbChwYXNzQnVpbGRlciwgT3B0aW9uczo6bGx2bU9wdGltaXphdGlvbkxldmVs
KCkpOworICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJTZXRTaXplTGV2ZWwocGFzc0J1
aWxkZXIsIE9wdGlvbnM6Omxsdm1TaXplTGV2ZWwoKSk7CisgICAgICAgIAorICAgICAgICBmdW5j
dGlvblBhc3NlcyA9IGxsdm0tPkNyZWF0ZUZ1bmN0aW9uUGFzc01hbmFnZXJGb3JNb2R1bGUoc3Rh
dGUubW9kdWxlKTsKKyAgICAgICAgbW9kdWxlUGFzc2VzID0gbGx2bS0+Q3JlYXRlUGFzc01hbmFn
ZXIoKTsKKyAgICAgICAgCisgICAgICAgIGxsdm0tPkFkZFRhcmdldERhdGEobGx2bS0+R2V0RXhl
Y3V0aW9uRW5naW5lVGFyZ2V0RGF0YShlbmdpbmUpLCBtb2R1bGVQYXNzZXMpOworICAgICAgICAK
KyAgICAgICAgbGx2bS0+UGFzc01hbmFnZXJCdWlsZGVyUG9wdWxhdGVGdW5jdGlvblBhc3NNYW5h
Z2VyKHBhc3NCdWlsZGVyLCBmdW5jdGlvblBhc3Nlcyk7CisgICAgICAgIGxsdm0tPlBhc3NNYW5h
Z2VyQnVpbGRlclBvcHVsYXRlTW9kdWxlUGFzc01hbmFnZXIocGFzc0J1aWxkZXIsIG1vZHVsZVBh
c3Nlcyk7CisgICAgICAgIAorICAgICAgICBsbHZtLT5QYXNzTWFuYWdlckJ1aWxkZXJEaXNwb3Nl
KHBhc3NCdWlsZGVyKTsKKyAgICAgICAgCisgICAgICAgIGxsdm0tPkluaXRpYWxpemVGdW5jdGlv
blBhc3NNYW5hZ2VyKGZ1bmN0aW9uUGFzc2VzKTsKKyAgICAgICAgZm9yIChMVmFsdWUgZnVuY3Rp
b24gPSBsbHZtLT5HZXRGaXJzdEZ1bmN0aW9uKHN0YXRlLm1vZHVsZSk7IGZ1bmN0aW9uOyBmdW5j
dGlvbiA9IGxsdm0tPkdldE5leHRGdW5jdGlvbihmdW5jdGlvbikpCisgICAgICAgICAgICBsbHZt
LT5SdW5GdW5jdGlvblBhc3NNYW5hZ2VyKGZ1bmN0aW9uUGFzc2VzLCBmdW5jdGlvbik7CisgICAg
ICAgIGxsdm0tPkZpbmFsaXplRnVuY3Rpb25QYXNzTWFuYWdlcihmdW5jdGlvblBhc3Nlcyk7Cisg
ICAgICAgIAorICAgICAgICBsbHZtLT5SdW5QYXNzTWFuYWdlcihtb2R1bGVQYXNzZXMsIHN0YXRl
Lm1vZHVsZSk7CisgICAgfQogCiAgICAgaWYgKERGRzo6c2hvdWxkU2hvd0Rpc2Fzc2VtYmx5KCkg
fHwgREZHOjp2ZXJib3NlQ29tcGlsYXRpb25FbmFibGVkKCkpCiAgICAgICAgIHN0YXRlLmR1bXBT
dGF0ZSgiYWZ0ZXIgb3B0aW1pemF0aW9uIik7CkBAIC0yODcsNyArMzAzLDggQEAgdm9pZCBjb21w
aWxlKFN0YXRlJiBzdGF0ZSkKICAgICAvLyBGSVhNRTogTmVlZCB0byBhZGQgc3VwcG9ydCBmb3Ig
dGhlIGNhc2Ugd2hlcmUgSklUIG1lbW9yeSBhbGxvY2F0aW9uIGZhaWxlZC4KICAgICAvLyBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTEzNjIwCiAgICAgc3RhdGUuZ2Vu
ZXJhdGVkRnVuY3Rpb24gPSByZWludGVycHJldF9jYXN0PEdlbmVyYXRlZEZ1bmN0aW9uPihsbHZt
LT5HZXRQb2ludGVyVG9HbG9iYWwoZW5naW5lLCBzdGF0ZS5mdW5jdGlvbikpOwotICAgIGxsdm0t
PkRpc3Bvc2VQYXNzTWFuYWdlcihmdW5jdGlvblBhc3Nlcyk7CisgICAgaWYgKGZ1bmN0aW9uUGFz
c2VzKQorICAgICAgICBsbHZtLT5EaXNwb3NlUGFzc01hbmFnZXIoZnVuY3Rpb25QYXNzZXMpOwog
ICAgIGxsdm0tPkRpc3Bvc2VQYXNzTWFuYWdlcihtb2R1bGVQYXNzZXMpOwogICAgIGxsdm0tPkRp
c3Bvc2VFeGVjdXRpb25FbmdpbmUoZW5naW5lKTsKIApJbmRleDogU291cmNlL0phdmFTY3JpcHRD
b3JlL3J1bnRpbWUvT3B0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9ydW50aW1lL09wdGlvbnMuaAkocmV2aXNpb24gMTU4NDU4KQorKysgU291cmNlL0phdmFTY3Jp
cHRDb3JlL3J1bnRpbWUvT3B0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMzEsNiArMTMxLDcg
QEAgdHlwZWRlZiBPcHRpb25SYW5nZSBvcHRpb25SYW5nZTsKICAgICB2KGJvb2wsIGR1bXBMTFZN
SVIsIGZhbHNlKSBcCiAgICAgdihib29sLCBsbHZtQWx3YXlzRmFpbHNCZWZvcmVDb21waWxlLCBm
YWxzZSkgXAogICAgIHYoYm9vbCwgbGx2bUFsd2F5c0ZhaWxzQmVmb3JlTGluaywgZmFsc2UpIFwK
KyAgICB2KGJvb2wsIGxsdm1TaW1wbGVPcHQsIHRydWUpIFwKICAgICB2KHVuc2lnbmVkLCBsbHZt
QmFja2VuZE9wdGltaXphdGlvbkxldmVsLCAyKSBcCiAgICAgdih1bnNpZ25lZCwgbGx2bU9wdGlt
aXphdGlvbkxldmVsLCAyKSBcCiAgICAgdih1bnNpZ25lZCwgbGx2bVNpemVMZXZlbCwgMCkgXAo=
</data>
<flag name="review"
          id="238577"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>