<html>
    <head>
      <base href="https://llvm.org/bugs/" />
    </head>
    <body><table border="1" cellspacing="0" cellpadding="8">
        <tr>
          <th>Bug ID</th>
          <td><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW --- - LoopVectorizer: audit use of SetCurrentDebugLocation"
   href="https://llvm.org/bugs/show_bug.cgi?id=31401">31401</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>LoopVectorizer: audit use of SetCurrentDebugLocation
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>libraries
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>trunk
          </td>
        </tr>

        <tr>
          <th>Hardware</th>
          <td>PC
          </td>
        </tr>

        <tr>
          <th>OS</th>
          <td>Windows NT
          </td>
        </tr>

        <tr>
          <th>Status</th>
          <td>NEW
          </td>
        </tr>

        <tr>
          <th>Severity</th>
          <td>normal
          </td>
        </tr>

        <tr>
          <th>Priority</th>
          <td>P
          </td>
        </tr>

        <tr>
          <th>Component</th>
          <td>Loop Optimizer
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>unassignedbugs@nondot.org
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>paul_robinson@playstation.sony.com
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>llvm-bugs@lists.llvm.org
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>IRBuilder::SetInsertPoint calls IRBuilder::SetCurrentDebugLocation.
So, if you use both APIs, and call SetCurrentDebugLocation first, 
your attempt to set the debug location explicitly has just been 
overridden.

I was able to audit most of LLVM's use of SetCurrentDebugLocation,
except for LoopVectorizer.cpp.  This module is large and complicated
and uses both APIs, but generally not in places that are obviously
related.

There is one place in InnerLoopVectorizer::vectorizeLoop() that looks
very suspicious even to me, calling the helper setDebugLocFromInst
right before Builder.SetInsertPoint; but in most cases the calls are 
not near each other and I was not able to work out whether things are
really okay.

So, I would like somebody familiar with the module to take a look
and see whether anything looks suspicious.</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>