[LLVMbugs] [Bug 4844] New: instcombine form still confuses basicaa

bugzilla-daemon at cs.uiuc.edu bugzilla-daemon at cs.uiuc.edu
Mon Aug 31 16:40:27 PDT 2009


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

           Summary: instcombine form still confuses basicaa
           Product: libraries
           Version: trunk
          Platform: PC
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P2
         Component: Core LLVM classes
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: evan at fallingsnow.net
                CC: llvmbugs at cs.uiuc.edu


Instcombine continues to put code in forms that confuse basicaa.

Attached are 3 files

primary.ll is quite big, but easily shows instcombine creating the bad form:

llvm-as < primary.ll | opt -instcombine | llvm-dis > primary-bad.ll
diff -u primary.ll primary-bad.ll

It's easy to see instcombine flipping BC(GEP)'s to strange GEP(BC)'s. It's
these GEP(BC) forms that confuse basicaa. Which brings me to the other two
files.

gep_bc.ll shows a reduced form of the code in primary.ll, using the GEP(BC)
forms that instcombine creates. Running this through opt will result in no
change to the output.


bc_gep.ll is the same as gep_bc.ll, but the GEP(BC) forms are undone back to
BC(GEP) forms, the same as before instcombine changed them.

Running bc_gep.ll through opt -std-compile-opts, you'll see significant
optimization.


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