mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-06-12 13:38:21 +00:00
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
This commit is contained in:
@ -115,7 +115,7 @@ void VirtRegMap::assignVirtReMatId(unsigned virtReg, int id) {
|
||||
}
|
||||
|
||||
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 @@ void VirtRegMap::virtFolded(unsigned VirtReg, MachineInstr *OldMI,
|
||||
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 @@ bool LocalSpiller::PrepForUnfoldOpti(MachineBasicBlock &MBB,
|
||||
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);
|
||||
|
Reference in New Issue
Block a user