[LLVMbugs] [Bug 11221] New: suboptimal code generation in nested loop unrolling

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Sun Oct 23 23:58:19 PDT 2011


http://llvm.org/bugs/show_bug.cgi?id=11221

           Summary: suboptimal code generation in nested loop unrolling
           Product: new-bugs
           Version: trunk
          Platform: All
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: new bugs
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: s3734770 at mail.zih.tu-dresden.de
                CC: llvmbugs at cs.uiuc.edu


Created an attachment (id=7506)
 --> (http://llvm.org/bugs/attachment.cgi?id=7506)
First file: original test case

I have two files attached: the generated file that was compiled from the
following program:

static init
begin
  var i: int = ParseInt('5', 0)
  print(IntToStr(i))
end

And the result after opt -O3. There is no ordering issue. It dosent matter how
often I call opt -O3, it dosent unloop.
When you look at the second file line 52-63 (%vergleich.i, %vergleich2.i), this
is the inner loop to compare which decimal character is stored in %char.i
The outer loop's significant lines are 49 where the exit condition is made. It
parses a string till it meets the zero.

This outer loop only has one pass. The problem is, llvm dosent notice that the
outer loop operates on a constant string and could be unfolded. (unrolling the
outer loop would pull in the rest of the optimizations)

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list