<?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>162879</bug_id>
          
          <creation_ts>2016-10-03 14:38:18 -0700</creation_ts>
          <short_desc>Creating pcToOriginMap in FTL shouldn&apos;t insert unnecessary NOPs</short_desc>
          <delta_ts>2016-10-03 14:53:37 -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>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</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="Michael Saboff">msaboff</reporter>
          <assigned_to name="Michael Saboff">msaboff</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1235923</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2016-10-03 14:38:18 -0700</bug_when>
    <thetext>In AirGenerate.cpp near line 196, we use standard macro assembler labels to get the current PC:
    pcToOriginMap.appendItem(jit.label(), ...);

If we recently created a watchpoint label, via labelForWatchpoint(), then we&apos;ll not pad when creating the label for pcToOriginMap.  This isn&apos;t necessary.

Instead, we should use jit.labelIgnoringWatchpoints() for pcToOriginMap&apos;s labels.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235927</commentid>
    <comment_count>1</comment_count>
      <attachid>290524</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2016-10-03 14:44:48 -0700</bug_when>
    <thetext>Created attachment 290524
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235929</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2016-10-03 14:47:56 -0700</bug_when>
    <thetext>Performance results of patch.  This shows a neutral to possible slight speedup on Octane.

VMs tested:
&quot;Baseline&quot; at /Volumes/Data/src/webkit.baseline/WebKitBuild/Release/JavaScriptCore.framework/Versions/A/Resources/jsc
&quot;ReducedNops&quot; at /Volumes/Data/src/webkit/WebKitBuild/Release/JavaScriptCore.framework/Versions/A/Resources/jsc

Collected 10 samples per benchmark/VM, with 10 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.

                                                 Baseline                ReducedNops                                    
SunSpider:
   3d-cube                                    8.4927+-0.2201            8.4569+-0.3008        
   3d-morph                                   8.2876+-0.0970            8.2708+-0.1228        
   3d-raytrace                                8.4772+-0.1849     ?      8.5529+-0.1157        ?
   access-binary-trees                        3.1561+-0.1318            3.0818+-0.0988          might be 1.0241x faster
   access-fannkuch                            8.5353+-0.3750     ?      8.5602+-0.2261        ?
   access-nbody                               4.3588+-0.0829     ?      4.4079+-0.1106        ? might be 1.0113x slower
   access-nsieve                              4.6929+-0.1068     ?      4.7037+-0.1082        ?
   bitops-3bit-bits-in-byte                   1.7280+-0.0614     ?      1.7440+-0.0493        ?
   bitops-bits-in-byte                        5.3063+-0.0667     ?      5.4083+-0.0655        ? might be 1.0192x slower
   bitops-bitwise-and                         2.7582+-0.0843     ?      2.8231+-0.0581        ? might be 1.0235x slower
   bitops-nsieve-bits                         4.7888+-0.1007            4.7659+-0.0748        
   controlflow-recursive                      3.5892+-0.0747     ?      3.6187+-0.0766        ?
   crypto-aes                                 7.2152+-0.1444            7.1528+-0.1348        
   crypto-md5                                 4.4246+-0.1020            4.4095+-0.1500        
   crypto-sha1                                4.4526+-0.0679     !      4.6137+-0.0745        ! definitely 1.0362x slower
   date-format-tofte                         14.2963+-0.3398           14.2701+-0.2102        
   date-format-xparb                          7.7327+-0.0951     ?      7.7615+-0.1554        ?
   math-cordic                                4.1716+-0.0670     ?      4.1983+-0.1158        ?
   math-partial-sums                          9.0604+-0.0999            9.0447+-0.0844        
   math-spectral-norm                         3.2773+-0.0997            3.2567+-0.0873        
   regexp-dna                                10.5064+-0.1815           10.4241+-0.1226        
   string-base64                              6.8975+-0.0620     ?      6.9925+-0.0856        ? might be 1.0138x slower
   string-fasta                               9.2126+-0.1079            9.1795+-0.1092        
   string-tagcloud                           13.5916+-0.1649     ?     13.6450+-0.2125        ?
   string-unpack-code                        26.8644+-0.3241           26.8144+-0.2583        
   string-validate-input                      6.6886+-0.0874            6.6695+-0.0890        

   &lt;arithmetic&gt;                               7.4063+-0.0279     ?      7.4164+-0.0330        ? might be 1.0014x slower

                                                 Baseline                ReducedNops                                    
Octane:
   encrypt                                   0.27579+-0.00106    ?     0.27656+-0.00036       ?
   decrypt                                   5.10833+-0.03781          5.07763+-0.05787       
   deltablue                        x2       0.21972+-0.00619    ?     0.22088+-0.00790       ?
   earley                                    0.45393+-0.00336          0.45152+-0.00161       
   boyer                                     8.05405+-0.06061    ?     8.06141+-0.05228       ?
   navier-stokes                    x2       6.48237+-0.01023    ?     6.48366+-0.01257       ?
   raytrace                         x2       1.26735+-0.01108          1.25816+-0.00740       
   richards                         x2       0.14584+-0.00255          0.14379+-0.00139         might be 1.0142x faster
   splay                            x2       0.55314+-0.00466          0.54653+-0.00251         might be 1.0121x faster
   regexp                           x2      28.82025+-0.24989         28.71947+-0.38194       
   pdfjs                            x2      65.33183+-0.38564         65.30303+-0.17080       
   mandreel                         x2      69.00627+-0.34301         68.73104+-0.22256       
   gbemu                            x2      64.55220+-6.32640         60.84211+-1.77502         might be 1.0610x faster
   closure                                   0.79790+-0.00121    !     0.80622+-0.00523       ! definitely 1.0104x slower
   jquery                                   10.56091+-0.04150         10.53725+-0.02327       
   box2d                            x2      16.89407+-0.03999    ^    16.66270+-0.06511       ^ definitely 1.0139x faster
   zlib                             x2     543.56729+-16.39174   ?   547.80662+-13.38795      ?
   typescript                       x2    1138.51814+-9.00853    ?  1141.69075+-8.76392       ?

   &lt;geometric&gt;                               8.47344+-0.04978          8.42189+-0.02698         might be 1.0061x faster

                                                 Baseline                ReducedNops                                    
Kraken:
   ai-astar                                  141.622+-1.036      ?     142.413+-0.553         ?
   audio-beat-detection                       64.743+-0.508             64.150+-0.496         
   audio-dft                                 129.453+-1.837      ?     129.635+-0.468         ?
   audio-fft                                  52.363+-0.448             51.915+-0.294         
   audio-oscillator                           76.678+-0.236      ?      76.769+-0.250         ?
   imaging-darkroom                           96.780+-0.331             96.472+-0.131         
   imaging-desaturate                         91.117+-0.322      ?      91.216+-0.274         ?
   imaging-gaussian-blur                     112.888+-4.577      ?     114.224+-4.722         ? might be 1.0118x slower
   json-parse-financial                       61.056+-0.294      ?      61.089+-0.386         ?
   json-stringify-tinderbox                   39.834+-0.172      ?      39.834+-0.146         ?
   stanford-crypto-aes                        64.406+-0.813             63.362+-0.810           might be 1.0165x faster
   stanford-crypto-ccm                        59.174+-1.134             58.481+-2.039           might be 1.0119x faster
   stanford-crypto-pbkdf2                    155.361+-2.938            152.626+-3.681           might be 1.0179x faster
   stanford-crypto-sha256-iterative           49.942+-0.505             49.711+-0.496         

   &lt;arithmetic&gt;                               85.387+-0.313             85.135+-0.517           might be 1.0030x faster

                                                 Baseline                ReducedNops                                    
Geomean of preferred means:
   &lt;scaled-result&gt;                           17.4989+-0.0423           17.4542+-0.0506          might be 1.0026x faster</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235930</commentid>
    <comment_count>3</comment_count>
      <attachid>290524</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2016-10-03 14:49:38 -0700</bug_when>
    <thetext>Comment on attachment 290524
Patch

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

&gt; Source/JavaScriptCore/b3/testb3.cpp:13295
&gt; +            AllowMacroScratchRegisterUsage allowScratch(jit);

Remove

&gt; Source/JavaScriptCore/b3/testb3.cpp:13302
&gt; +            AllowMacroScratchRegisterUsage allowScratch(jit);

Remove.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1235931</commentid>
    <comment_count>4</comment_count>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2016-10-03 14:53:37 -0700</bug_when>
    <thetext>Committed r206752: &lt;http://trac.webkit.org/changeset/206752&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>290524</attachid>
            <date>2016-10-03 14:44:48 -0700</date>
            <delta_ts>2016-10-03 14:49:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>162879.patch</filename>
            <type>text/plain</type>
            <size>3492</size>
            <attacher name="Michael Saboff">msaboff</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjA2NzUwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBA
CisyMDE2LTEwLTAzICBNaWNoYWVsIFNhYm9mZiAgPG1zYWJvZmZAYXBwbGUuY29tPgorCisgICAg
ICAgIENyZWF0aW5nIHBjVG9PcmlnaW5NYXAgaW4gRlRMIHNob3VsZG4ndCBpbnNlcnQgdW5uZWNl
c3NhcnkgTk9QcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTYyODc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgSWYgdGhlcmUgaXMgYSByZWNlbnQgd2F0Y2hwb2ludCBsYWJlbCwgdXNpbmcgTWFjcm9Bc3Nl
bWJsZXI6OmxhYmVsKCkgd2lsbCBwYWQKKyAgICAgICAgdGhlIGluc3RydWN0aW9uIHN0cmVhbSB3
aXRoIE5PUHMgdG8gcHJvdmlkZSBzcGFjZSBmb3IgYSBqdW1wLiAgVGhpcyBjaGFuZ2VzCisgICAg
ICAgIEFpcjo6Z2VuZXJhdGUoKSB0byB1c2UgbGFiZWxJZ25vcmluZ1dhdGNocG9pbnRzKCkgdG8g
Y3JlYXRlIHBjVG9PcmlnaW5NYXAKKyAgICAgICAgZW50cmllcyB0byBlbGltaW5hdGUgdW5uZWNj
ZXNhcnkgTk9Qcy4KKyAgICAgICAgCisgICAgICAgICogYjMvYWlyL0FpckdlbmVyYXRlLmNwcDoK
KyAgICAgICAgKEpTQzo6QjM6OkFpcjo6Z2VuZXJhdGUpOgorICAgICAgICAqIGIzL3Rlc3RiMy5j
cHA6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0UENPcmlnaW5NYXBEb2VzbnRJbnNlcnROb3BzKTog
TmV3IHRlc3QuCisgICAgICAgIChKU0M6OkIzOjpydW4pOgorCiAyMDE2LTEwLTAzICBTYWFtIEJh
cmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIE1hcEhhc2ggc2hvdWxkIHNwZWN1
bGF0ZSBvbiB0aGUgdHlwZSBvZiBpdHMgY2hpbGQgbm9kZQpJbmRleDogU291cmNlL0phdmFTY3Jp
cHRDb3JlL2IzL3Rlc3RiMy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2IzL3Rlc3RiMy5jcHAJKHJldmlzaW9uIDIwNjczNykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy90ZXN0YjMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzI4Miw2ICsxMzI4MiwzNCBAQCB2
b2lkIHRlc3RNb3ZlQ29uc3RhbnRzKCkKICAgICB9CiB9CiAKK3ZvaWQgdGVzdFBDT3JpZ2luTWFw
RG9lc250SW5zZXJ0Tm9wcygpCit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFzaWNCbG9j
ayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKworICAgIENDYWxsSGVscGVyczo6TGFiZWwgd2F0
Y2hwb2ludExhYmVsOworCisgICAgUGF0Y2hwb2ludFZhbHVlKiBwYXRjaHBvaW50ID0gcm9vdC0+
YXBwZW5kTmV3PFBhdGNocG9pbnRWYWx1ZT4ocHJvYywgVm9pZCwgT3JpZ2luKCkpOworICAgIHBh
dGNocG9pbnQtPnNldEdlbmVyYXRvcigKKyAgICAgICAgWyZdIChDQ2FsbEhlbHBlcnMmIGppdCwg
Y29uc3QgU3RhY2ttYXBHZW5lcmF0aW9uUGFyYW1zJikgeworICAgICAgICAgICAgQWxsb3dNYWNy
b1NjcmF0Y2hSZWdpc3RlclVzYWdlIGFsbG93U2NyYXRjaChqaXQpOworICAgICAgICAgICAgd2F0
Y2hwb2ludExhYmVsID0gaml0LndhdGNocG9pbnRMYWJlbCgpOworICAgICAgICB9KTsKKworICAg
IHBhdGNocG9pbnQgPSByb290LT5hcHBlbmROZXc8UGF0Y2hwb2ludFZhbHVlPihwcm9jLCBWb2lk
LCBPcmlnaW4oKSk7CisgICAgcGF0Y2hwb2ludC0+c2V0R2VuZXJhdG9yKAorICAgICAgICBbJl0g
KENDYWxsSGVscGVycyYgaml0LCBjb25zdCBTdGFja21hcEdlbmVyYXRpb25QYXJhbXMmKSB7Cisg
ICAgICAgICAgICBBbGxvd01hY3JvU2NyYXRjaFJlZ2lzdGVyVXNhZ2UgYWxsb3dTY3JhdGNoKGpp
dCk7CisgICAgICAgICAgICBDQ2FsbEhlbHBlcnM6OkxhYmVsIGxhYmVsSWdub3JpbmdXYXRjaHBv
aW50cyA9IGppdC5sYWJlbElnbm9yaW5nV2F0Y2hwb2ludHMoKTsKKworICAgICAgICAgICAgQ0hF
Q0sod2F0Y2hwb2ludExhYmVsID09IGxhYmVsSWdub3JpbmdXYXRjaHBvaW50cyk7CisgICAgICAg
IH0pOworCisgICAgcm9vdC0+YXBwZW5kTmV3PFZhbHVlPihwcm9jLCBSZXR1cm4sIE9yaWdpbigp
KTsKKworICAgIGNvbXBpbGUocHJvYyk7Cit9CisKIC8vIE1ha2Ugc3VyZSB0aGUgY29tcGlsZXIg
ZG9lcyBub3QgdHJ5IHRvIG9wdGltaXplIGFueXRoaW5nIG91dC4KIE5FVkVSX0lOTElORSBkb3Vi
bGUgemVybygpCiB7CkBAIC0xNDcyOCw2ICsxNDc1Niw3IEBAIHZvaWQgcnVuKGNvbnN0IGNoYXIq
IGZpbHRlcikKICAgICBSVU4odGVzdFRyYXBwaW5nTG9hZERDRSgpKTsKICAgICBSVU4odGVzdFRy
YXBwaW5nU3RvcmVFbGltaW5hdGlvbigpKTsKICAgICBSVU4odGVzdE1vdmVDb25zdGFudHMoKSk7
CisgICAgUlVOKHRlc3RQQ09yaWdpbk1hcERvZXNudEluc2VydE5vcHMoKSk7CiAgICAgCiAgICAg
aWYgKHRhc2tzLmlzRW1wdHkoKSkKICAgICAgICAgdXNhZ2UoKTsKSW5kZXg6IFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyR2VuZXJhdGUuY3BwCShyZXZpc2lvbiAyMDY3MzcpCisr
KyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckdlbmVyYXRlLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTkwLDEwICsxOTAsMTAgQEAgdm9pZCBnZW5lcmF0ZShDb2RlJiBjb2RlLCBDQ2Fs
bEhlbHBlcnMmIAogICAgIFBDVG9PcmlnaW5NYXAmIHBjVG9PcmlnaW5NYXAgPSBjb2RlLnByb2Mo
KS5wY1RvT3JpZ2luTWFwKCk7CiAgICAgYXV0byBhZGRJdGVtID0gWyZdIChJbnN0JiBpbnN0KSB7
CiAgICAgICAgIGlmICghaW5zdC5vcmlnaW4pIHsKLSAgICAgICAgICAgIHBjVG9PcmlnaW5NYXAu
YXBwZW5kSXRlbShqaXQubGFiZWwoKSwgT3JpZ2luKCkpOworICAgICAgICAgICAgcGNUb09yaWdp
bk1hcC5hcHBlbmRJdGVtKGppdC5sYWJlbElnbm9yaW5nV2F0Y2hwb2ludHMoKSwgT3JpZ2luKCkp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIHBjVG9PcmlnaW5NYXAu
YXBwZW5kSXRlbShqaXQubGFiZWwoKSwgaW5zdC5vcmlnaW4tPm9yaWdpbigpKTsKKyAgICAgICAg
cGNUb09yaWdpbk1hcC5hcHBlbmRJdGVtKGppdC5sYWJlbElnbm9yaW5nV2F0Y2hwb2ludHMoKSwg
aW5zdC5vcmlnaW4tPm9yaWdpbigpKTsKICAgICB9OwogCiAgICAgZm9yIChCYXNpY0Jsb2NrKiBi
bG9jayA6IGNvZGUpIHsK
</data>
<flag name="review"
          id="313700"
          type_id="1"
          status="+"
          setter="fpizlo"
    />
          </attachment>
      

    </bug>

</bugzilla>