<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 --- - LVI should use PredicateInfo, ideally"
   href="https://llvm.org/bugs/show_bug.cgi?id=31895">31895</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>LVI should use PredicateInfo, ideally
          </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>Scalar Optimizations
          </td>
        </tr>

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

        <tr>
          <th>Reporter</th>
          <td>dberlin@dberlin.org
          </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>LVI currently has issues where it tries to determine per-block values because
the value has the same name everywhere.

These are all examples of what predicateinfo solves, and using it, if possible,
would greatly simplify and speedup LVI.

For example, LVI currently requires the overdefined cache be per-block, so it
can try to evaluate the value in each block.  With predicateinfo, each block
value that matters to LVI has a different name in that block, so you don't need
to do this.

In practice, overdefined anywhere should be overdefined everywhere, and having
it per-block just makes certain testcases hundreds of times slower as they try
to propagate overdefined info.

So changing this,for example, speeds up LVI by 10x in some cases.

Currently it's fast enough that i'm putting this to the side, but ...</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>