[LLVMbugs] [Bug 11161] New: BranchFolding pass fails to reliably maintain "kill" bit

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Mon Oct 17 16:49:12 PDT 2011


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

           Summary: BranchFolding pass fails to reliably maintain "kill"
                    bit
           Product: libraries
           Version: trunk
          Platform: PC
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: Common Code Generator Code
        AssignedTo: unassignedbugs at nondot.org
        ReportedBy: pickensd at synopsys.com
                CC: llvmbugs at cs.uiuc.edu


The BranchFolding pass fails to properly maintain the kill bit in the following
hoisting scenario after register allocation:

BB:...
   %CC <- CMP %R10,...
   CJMP  TBB,condcode,%CC
   JMP FBB

TBB:
   %R11 <-  ADD %R10<kill>,1
   ...

FBB:
   %R11 <- ADD %R10<kill>,1
   ...


BranchFolding hoists the ADD as follows, but fails to maintain the <kill> bit
on the %R10 operands.

BB: ...
    %R11 <- ADD %R10<kill>,1    <-- Kill bit not cleared!
    %CC  <- CMP %R10,...        <-- Kill bit not set!
    CJMP  TBB,condcode,%CC
    JMP FBB


This problem causes the register scavenger to bomb during
post-register-allocation processing.

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