<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 --- - SCEV not sufficiently invalidated - Results in non-dominating expressions to be inserted"
   href="https://llvm.org/bugs/show_bug.cgi?id=28984">28984</a>
          </td>
        </tr>

        <tr>
          <th>Summary</th>
          <td>SCEV not sufficiently invalidated - Results in non-dominating expressions to be inserted
          </td>
        </tr>

        <tr>
          <th>Product</th>
          <td>Polly
          </td>
        </tr>

        <tr>
          <th>Version</th>
          <td>unspecified
          </td>
        </tr>

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

        <tr>
          <th>OS</th>
          <td>Linux
          </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>Optimizer
          </td>
        </tr>

        <tr>
          <th>Assignee</th>
          <td>polly-dev@googlegroups.com
          </td>
        </tr>

        <tr>
          <th>Reporter</th>
          <td>tobias@grosser.es
          </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>opt  -polly-process-unprofitable  -polly-remarks-minimal  -S -polly-codegen 
 -polly-invariant-load-hoisting=false
test/Isl/CodeGen/hoisted_load_escapes_through_phi.ll

fails with r78673:

  %tmp1 = load i32, i32* @cont_STACKPOINTER, align 4
  %0 = sext i32 %tmp1 to i64
Polly generated function could not be verified. Add -polly-codegen-verify=false
to disable this assertion.

The test case contains two scops in a row, where the first scop is code
generated "before" the second scop. Unfortunately the second scop references
the first scop in some of the SCEV expressions used, which results in parameter
values of the second scop referencing an instruction ('tmp1') which is not any
more dominating the second scop.

We probably need to run SE.forgetValue() for all instruction in the original
scop region. However, this might conflict with the caching of SCEV instructions
in ScopDetection.</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>