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

            Bug ID: 25447
           Summary: [Polly] Bailing out during codegen of loop-invariant
                    loads breaks scop
           Product: Projects
           Version: unspecified
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: Polly
          Assignee: polly-...@googlegroups.com
          Reporter: tob...@grosser.es
                CC: llvm-bugs@lists.llvm.org
    Classification: Unclassified

Created attachment 15246
  --> https://llvm.org/bugs/attachment.cgi?id=15246&action=edit
Test case

With r252412 the command polly-opt bailing-out-breaks-scop.ll -polly-codegen
-polly-process-unprofitable fails as follows:

Instruction does not dominate all uses:
  -> operand:   %tmp26.ph = phi i1 [ undef, %bb24 ], [ false, %bb16 ], [ false,
%bb21 ]
  -> operand in bb: label %bb25.region_exiting
  -> operand in func: barney
  -> inst:   %tmp26 = phi i1 [ %tmp26.ph, %polly.merge_new_and_old ]
  -> inst in bb: label %bb25
  -> inst in func: barney

The reason for this error is that at the point we bail out, Polly already split
the code into an optimized and unoptimized branch, but did not yet generate the
PHI nodes that merge values defined in the original code with the corresponding
values in the newly generated code (such values and stack slots do not even
exist yet). As a result, uses after the scop reference values in the original
code that do not dominate them after the code has been split.

Also, when bailing out early we do not verify the generated IR any more.

-- 
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