Also inflate register classes around inline asm.

Now that MI->getRegClassConstraint() can also handle inline assembly,
don't bail when recomputing the register class of a virtual register
used by inline asm.

This fixes PR11078.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141836 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jakob Stoklund Olesen
2011-10-12 23:37:40 +00:00
parent f5916976e9
commit dee83c90bb
2 changed files with 28 additions and 4 deletions

View File

@@ -79,11 +79,8 @@ MachineRegisterInfo::recomputeRegClass(unsigned Reg, const TargetMachine &TM) {
// TRI doesn't have accurate enough information to model this yet.
if (I.getOperand().getSubReg())
return false;
// Inline asm instuctions don't remember their constraints.
if (I->isInlineAsm())
return false;
const TargetRegisterClass *OpRC =
TII->getRegClass(I->getDesc(), I.getOperandNo(), TRI);
I->getRegClassConstraint(I.getOperandNo(), TII, TRI);
if (OpRC)
NewRC = TRI->getCommonSubClass(NewRC, OpRC);
if (!NewRC || NewRC == OldRC)