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: [email protected]
        ReportedBy: [email protected]
                CC: [email protected]


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.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs

Reply via email to