When setting the "unused" info, take into account something like this:

%r3<def> = OR %x3<kill>, %x3

We don't want to mark the %r3 as unused even though it's a sub-register of %x3.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48003 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Bill Wendling
2008-03-06 23:22:43 +00:00
parent eb49c4e008
commit ed1fcd8987
2 changed files with 39 additions and 9 deletions

View File

@ -98,7 +98,7 @@ public:
///
void setUsed(unsigned Reg);
void setUsed(BitVector Regs) { RegsAvailable &= ~Regs; }
void setUnused(unsigned Reg);
void setUnused(unsigned Reg, const MachineInstr *MI);
void setUnused(BitVector Regs) { RegsAvailable |= Regs; }
/// FindUnusedReg - Find a unused register of the specified register class