<html>
    <head>
      <base href="http://llvm.org/bugs/" />
    </head>
    <body><span class="vcard"><a class="email" href="mailto:justin.holewinski@gmail.com" title="Justin Holewinski <justin.holewinski@gmail.com>"> <span class="fn">Justin Holewinski</span></a>
</span> changed
              <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - Instrcombine increases register usage significantly"
   href="http://llvm.org/bugs/show_bug.cgi?id=16140">bug 16140</a>
        <br>
             <table border="1" cellspacing="0" cellpadding="8">
          <tr>
            <th>What</th>
            <th>Removed</th>
            <th>Added</th>
          </tr>

         <tr>
           <td style="text-align:right;">Status</td>
           <td>NEW
           </td>
           <td>RESOLVED
           </td>
         </tr>

         <tr>
           <td style="text-align:right;">CC</td>
           <td>
                
           </td>
           <td>justin.holewinski@gmail.com
           </td>
         </tr>

         <tr>
           <td style="text-align:right;">Resolution</td>
           <td>---
           </td>
           <td>FIXED
           </td>
         </tr></table>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - Instrcombine increases register usage significantly"
   href="http://llvm.org/bugs/show_bug.cgi?id=16140#c2">Comment # 2</a>
              on <a class="bz_bug_link 
          bz_status_RESOLVED  bz_closed"
   title="RESOLVED FIXED - Instrcombine increases register usage significantly"
   href="http://llvm.org/bugs/show_bug.cgi?id=16140">bug 16140</a>
              from <span class="vcard"><a class="email" href="mailto:justin.holewinski@gmail.com" title="Justin Holewinski <justin.holewinski@gmail.com>"> <span class="fn">Justin Holewinski</span></a>
</span></b>
        <pre>The crash is now fixed since we are back to emitting virtual registers in PTX
(so spilling is not possible).  And the standard compilation passes are not
showing any regression in register usage:

(no optimization)
# llc -march=nvptx:

ptxas info    : 0 bytes gmem
ptxas info    : Compiling entry function 'main' for 'sm_35'
ptxas info    : Function properties for main
    0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info    : Used 43 registers, 348 bytes cmem[0], 4 bytes cmem[2]


(-O3 including instcombine)
# opt -O3 | llc -march=nvptx:

ptxas info    : 0 bytes gmem
ptxas info    : Compiling entry function 'main' for 'sm_35'
ptxas info    : Function properties for main
    0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info    : Used 40 registers, 348 bytes cmem[0], 4 bytes cmem[2]


# opt -instcombine | llc -march=nvptx

ptxas info    : 0 bytes gmem
ptxas info    : Compiling entry function 'main' for 'sm_35'
ptxas info    : Function properties for main
    0 bytes stack frame, 0 bytes spill stores, 0 bytes spill loads
ptxas info    : Used 43 registers, 348 bytes cmem[0], 4 bytes cmem[2]


Instcombine is an interesting case here, though.  Running it on the attached
kernel takes a long time (currently 10 minutes and counting...).  Frank, if
you're concerned with instcombine compilation time, please open a different
bug.</pre>
        </div>
      </p>
      <hr>
      <span>You are receiving this mail because:</span>
      
      <ul>
          <li>You are on the CC list for the bug.</li>
      </ul>
    </body>
</html>