[llvm-bugs] [Bug 36015] New: Regression in StructurizeCFG, r321751: complex loop structure turned into infinite loop

via llvm-bugs llvm-bugs at lists.llvm.org
Fri Jan 19 07:26:15 PST 2018


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

            Bug ID: 36015
           Summary: Regression in StructurizeCFG, r321751: complex loop
                    structure turned into infinite loop
           Product: libraries
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: Scalar Optimizations
          Assignee: unassignedbugs at nondot.org
          Reporter: nhaehnle at gmail.com
                CC: llvm-bugs at lists.llvm.org

Created attachment 19710
  --> https://bugs.llvm.org/attachment.cgi?id=19710&action=edit
Reduced test case

I'm attaching a reduced test case, plus the output of `opt -structurizecfg`.

Change r321751 ("StructurizeCFG: Fix broken backedge detection") breaks this
test case, in the following way:

The original code has edges from both %if and %else into the %exit block. In
the resulting code, the edge from %if to %exit disappears: if the exit
condition is met (%cond.if = false), the control will follow %if -> %Flow1 ->
%Flow2 -> %loop.outer instead of %if -> %Flow1 -> %Flow2 -> %exit.

This bug regresses various OpenGL test suites, for example
dEQP-GLES3.functional.shaders.loops.do_while_dynamic_iterations.conditional_continue_vertex.

-- 
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/20180119/0e85e53e/attachment.html>


More information about the llvm-bugs mailing list