X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FCodeGen%2FMachineCombiner.cpp;h=aeb864efa340243c59c5528308894c7f634bbf36;hb=2a2fcc1a0ec4a115bbe76c185f7cd64e77b61e7c;hp=591c4caf66ed0f220359ff5a829eb3838c8e8ba6;hpb=b0b708854ec3cd8047b4659d2ef881bc7d1b582c;p=oota-llvm.git diff --git a/lib/CodeGen/MachineCombiner.cpp b/lib/CodeGen/MachineCombiner.cpp index 591c4caf66e..aeb864efa34 100644 --- a/lib/CodeGen/MachineCombiner.cpp +++ b/lib/CodeGen/MachineCombiner.cpp @@ -144,8 +144,7 @@ MachineCombiner::getDepth(SmallVectorImpl &InsInstrs, InstrIdxForVirtReg.find(MO.getReg()); if (II != InstrIdxForVirtReg.end()) { // Operand is new virtual register not in trace - assert(II->second >= 0 && II->second < InstrDepth.size() && - "Bad Index"); + assert(II->second < InstrDepth.size() && "Bad Index"); MachineInstr *DefInstr = InsInstrs[II->second]; assert(DefInstr && "There must be a definition for a new virtual register"); @@ -274,7 +273,9 @@ bool MachineCombiner::preservesResourceLen( // Compute current resource length - ArrayRef MBBarr(MBB); + //ArrayRef MBBarr(MBB); + SmallVector MBBarr; + MBBarr.push_back(MBB); unsigned ResLenBeforeCombine = BlockTrace.getResourceLength(MBBarr); // Deal with SC rather than Instructions. @@ -379,7 +380,7 @@ bool MachineCombiner::combineInstructions(MachineBasicBlock *MBB) { MBB->insert((MachineBasicBlock::iterator) & MI, (MachineInstr *)InstrPtr); for (auto *InstrPtr : DelInstrs) - InstrPtr->eraseFromParent(); + InstrPtr->eraseFromParentAndMarkDBGValuesForRemoval(); Changed = true; ++NumInstCombined; @@ -405,10 +406,10 @@ bool MachineCombiner::combineInstructions(MachineBasicBlock *MBB) { } bool MachineCombiner::runOnMachineFunction(MachineFunction &MF) { - TII = MF.getTarget().getInstrInfo(); - TRI = MF.getTarget().getRegisterInfo(); const TargetSubtargetInfo &STI = MF.getTarget().getSubtarget(); + TII = STI.getInstrInfo(); + TRI = STI.getRegisterInfo(); SchedModel = STI.getSchedModel(); TSchedModel.init(*SchedModel, &STI, TII); MRI = &MF.getRegInfo();