[llvm-bugs] [Bug 28166] New: Exponential output growth introduced in the IndVarsSimplify pass

via llvm-bugs llvm-bugs at lists.llvm.org
Fri Jun 17 07:02:24 PDT 2016


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

            Bug ID: 28166
           Summary: Exponential output growth introduced in the
                    IndVarsSimplify pass
           Product: new-bugs
           Version: 3.8
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
          Assignee: unassignedbugs at nondot.org
          Reporter: david.stenberg at ericsson.com
                CC: llvm-bugs at lists.llvm.org
    Classification: Unclassified

Created attachment 16565
  --> https://llvm.org/bugs/attachment.cgi?id=16565&action=edit
Reproducer

When running opt:

  opt -S -Oz -O1 bugpoint-reduced-simplified.ll

with the attached bugpoint-reduced-simplified.ll file, the resulting output
file seems to grow exponentially with the number of loop iterations (40 in the
bugpoint-reduced-simplified.ll), as seen here for N=20, 21, and 22:

  $ du -h out-*
  74M   out-20.ll
  148M  out-21.ll
  295M  out-22.ll

The problem seems to be introduced in the Induction Variable Simplification
pass, where the condition for the br instruction in bb3 grows:

N = 1:
  br i1 icmp sge (i16 ptrtoint (i16* @bar to i16), i16 0),
  label %bb4.preheader, label %bb5

N = 2:
  br i1 icmp sge (i16 xor (i16 zext (i1 icmp sge
  (i16 ptrtoint (i16* @bar to i16), i16 0) to i16),
  i16 ptrtoint (i16* @bar to i16)), i16 zext (i1 icmp sge
  (i16 ptrtoint (i16* @bar to i16), i16 0) to i16)),
  label %bb4.preheader, label %bb5

And so on.

The issue might be related to how the passes are executed, as passing any
combination of the -O[z123] flags triggers the issue. When passing just one of
the flags, the issue is not seen.

-- 
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/20160617/9c0f2c0f/attachment-0001.html>


More information about the llvm-bugs mailing list