MI keeps a ptr of TargetInstrDescriptor, use it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32296 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Evan Cheng 2006-12-07 01:21:59 +00:00
parent 6065f66e7c
commit 51cdcd1972
3 changed files with 7 additions and 4 deletions

View File

@ -434,7 +434,8 @@ static bool isReDefinedByTwoAddr(MachineInstr *MI, unsigned Reg,
for (unsigned j = i+1; j < e; ++j) {
MachineOperand &MO2 = MI->getOperand(j);
if (MO2.isRegister() && MO2.isUse() && MO2.getReg() == Reg &&
TII->getOperandConstraint(MI->getOpcode(),j,TOI::TIED_TO) == (int)i)
MI->getInstrDescriptor()->
getOperandConstraint(j, TOI::TIED_TO) == (int)i)
return true;
}
}

View File

@ -97,7 +97,8 @@ void VirtRegMap::virtFolded(unsigned VirtReg, MachineInstr *OldMI,
}
ModRef MRInfo;
if (TII.getOperandConstraint(OldMI->getOpcode(), OpNo, TOI::TIED_TO) != -1) {
if (OldMI->getInstrDescriptor()->
getOperandConstraint(OpNo, TOI::TIED_TO) != -1) {
// Folded a two-address operand.
MRInfo = isModRef;
} else if (OldMI->getOperand(OpNo).isDef()) {
@ -591,7 +592,7 @@ void LocalSpiller::RewriteMBB(MachineBasicBlock &MBB, VirtRegMap &VRM) {
// aren't allowed to modify the reused register. If none of these cases
// apply, reuse it.
bool CanReuse = true;
int ti = TII->getOperandConstraint(MI.getOpcode(), i, TOI::TIED_TO);
int ti = MI.getInstrDescriptor()->getOperandConstraint(i, TOI::TIED_TO);
if (ti != -1 &&
MI.getOperand(ti).isReg() &&
MI.getOperand(ti).getReg() == VirtReg) {

View File

@ -27,6 +27,7 @@
#include "llvm/CodeGen/MachineFrameInfo.h"
#include "llvm/CodeGen/MachineLocation.h"
#include "llvm/Target/TargetFrameInfo.h"
#include "llvm/Target/TargetInstrInfo.h"
#include "llvm/Target/TargetMachine.h"
#include "llvm/Target/TargetOptions.h"
#include "llvm/Support/CommandLine.h"
@ -289,7 +290,7 @@ MachineInstr* X86RegisterInfo::foldMemoryOperand(MachineInstr *MI,
bool isTwoAddrFold = false;
unsigned NumOps = TII.getNumOperands(MI->getOpcode());
bool isTwoAddr = NumOps > 1 &&
TII.getOperandConstraint(MI->getOpcode(), 1, TOI::TIED_TO) != -1;
MI->getInstrDescriptor()->getOperandConstraint(1, TOI::TIED_TO) != -1;
MachineInstr *NewMI = NULL;
// Folding a memory location into the two-address part of a two-address