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