mirror of
https://github.com/RPCSX/llvm.git
synced 2024-12-15 16:09:02 +00:00
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:
parent
6065f66e7c
commit
51cdcd1972
@ -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;
|
||||
}
|
||||
}
|
||||
|
@ -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) {
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user