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";