Changes to fix up the inst_iterator to pass to boost iterator checks. This
patch was graciously contributed by Vladimir Prus.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13185 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Target/SparcV9/RegAlloc/PhyRegAlloc.cpp b/lib/Target/SparcV9/RegAlloc/PhyRegAlloc.cpp
index 28fc75a..0f4c4bd 100644
--- a/lib/Target/SparcV9/RegAlloc/PhyRegAlloc.cpp
+++ b/lib/Target/SparcV9/RegAlloc/PhyRegAlloc.cpp
@@ -1167,9 +1167,9 @@
unsigned Insn = 0;
// Instructions themselves encoded as operand # -1
for (const_inst_iterator II=inst_begin (Fn), IE=inst_end (Fn); II!=IE; ++II){
- saveStateForValue (state, (*II), Insn, -1);
- for (unsigned i = 0; i < (*II)->getNumOperands (); ++i) {
- const Value *V = (*II)->getOperand (i);
+ saveStateForValue (state, (&*II), Insn, -1);
+ for (unsigned i = 0; i < (*II).getNumOperands (); ++i) {
+ const Value *V = (*II).getOperand (i);
// Don't worry about it unless it's something whose reg. we'll need.
if (!isa<Argument> (V) && !isa<Instruction> (V))
continue;
@@ -1201,7 +1201,7 @@
}
int Insn = 0;
for (const_inst_iterator II=inst_begin (Fn), IE=inst_end (Fn); II!=IE; ++II) {
- const Instruction *I = *II;
+ const Instruction *I = &*II;
MachineCodeForInstruction &Instrs = MachineCodeForInstruction::get (I);
std::cerr << "Instruction: " << *I
<< "MachineCodeForInstruction:\n";