Remove redundant foldMemoryOperand variants and other code clean up.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44517 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/CodeGen/VirtRegMap.cpp b/lib/CodeGen/VirtRegMap.cpp
index 86db2bc..a7154b2 100644
--- a/lib/CodeGen/VirtRegMap.cpp
+++ b/lib/CodeGen/VirtRegMap.cpp
@@ -115,7 +115,7 @@
}
void VirtRegMap::virtFolded(unsigned VirtReg, MachineInstr *OldMI,
- unsigned OpNo, MachineInstr *NewMI) {
+ MachineInstr *NewMI, ModRef MRInfo) {
// Move previous memory references folded to new instruction.
MI2VirtMapTy::iterator IP = MI2VirtMap.lower_bound(NewMI);
for (MI2VirtMapTy::iterator I = MI2VirtMap.lower_bound(OldMI),
@@ -124,18 +124,6 @@
MI2VirtMap.erase(I++);
}
- ModRef MRInfo;
- const TargetInstrDescriptor *TID = OldMI->getInstrDescriptor();
- if (TID->getOperandConstraint(OpNo, TOI::TIED_TO) != -1 ||
- TID->findTiedToSrcOperand(OpNo) != -1) {
- // Folded a two-address operand.
- MRInfo = isModRef;
- } else if (OldMI->getOperand(OpNo).isDef()) {
- MRInfo = isMod;
- } else {
- MRInfo = isRef;
- }
-
// add new memory reference
MI2VirtMap.insert(IP, std::make_pair(NewMI, std::make_pair(VirtReg, MRInfo)));
}
@@ -830,7 +818,9 @@
NewMIs.clear();
int Idx = NewMI->findRegisterUseOperandIdx(VirtReg);
assert(Idx != -1);
- MachineInstr *FoldedMI = MRI->foldMemoryOperand(NewMI, Idx, SS);
+ SmallVector<unsigned, 2> Ops;
+ Ops.push_back(Idx);
+ MachineInstr *FoldedMI = MRI->foldMemoryOperand(NewMI, Ops, SS);
if (FoldedMI) {
if (!VRM.hasPhys(UnfoldVR))
VRM.assignVirt2Phys(UnfoldVR, UnfoldPR);