[llvm-bugs] [Bug 25447] New: [Polly] Bailing out during codegen of loop-invariant loads breaks scop

via llvm-bugs llvm-bugs at lists.llvm.org
Sun Nov 8 01:41:18 PST 2015


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-dev at googlegroups.com
          Reporter: tobias at grosser.es
                CC: llvm-bugs at 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.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20151108/17ef6570/attachment.html>


More information about the llvm-bugs mailing list