https://llvm.org/bugs/show_bug.cgi?id=28984

            Bug ID: 28984
           Summary: SCEV not sufficiently invalidated - Results in
                    non-dominating expressions to be inserted
           Product: Polly
           Version: unspecified
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Optimizer
          Assignee: polly-...@googlegroups.com
          Reporter: tob...@grosser.es
                CC: llvm-bugs@lists.llvm.org
    Classification: Unclassified

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.

-- 
You are receiving this mail because:
You are on the CC list for the bug.
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to