<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 --- - llc -stop-after/-start-after do not work with target passes" href="https://urldefense.proofpoint.com/v2/url?u=https-3A__llvm.org_bugs_show-5Fbug.cgi-3Fid-3D24261&d=AwMBaQ&c=8hUWFZcy2Z-Za5rBPlktOQ&r=pF93YEPyB-J_PERP4DUZOJDzFVX5ZQ57vQk33wu0vio&m=57D6oi_BGX2-0M8V9Foui2zGf3nw8fZi4d3wDjJyhm8&s=6ru8rx2Vpu332fXCjWR0qvzeBeKCJISi2sdb-M0KG4A&e=">24261</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>llc -stop-after/-start-after do not work with target passes
          </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>All
          </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>Common Code Generator Code
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>matze@braunis.de
          </td>
        </tr>

        <tr>
          <th>CC</th>
          <td>arphaman@gmail.com, dexonsmith@apple.com, llvmbugs@cs.uiuc.edu
          </td>
        </tr>

        <tr>
          <th>Classification</th>
          <td>Unclassified
          </td>
        </tr></table>
      <p>
        <div>
        <pre>An example with an ARM pass, though the problem affects all targets:

Using the llc -stop-after/-start-after fail to recognize target passes. For
example
  llc -stop-after arm-load-store-opt test.ll
results in:
  llc: stop-after pass is not registered.

The problems is that initializeARMLoadStoreOpt() is only called in the
ARMLoadStoreOpt constructor. This makes the Pass unknown if it is not part of
the default pipeline, even if you move the initializeARMLoadStoreOptPass() to
something like the ARMTargetMachine constructor does not help because the
target is initialized after the stop-after/start-after switches are checked in
the llc tool.

This makes it impossible to write MIR-serialization based tests for target
passes at the moment.</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>