Bug re-fix: put back MachineCodeForInstruction::get(*I).dropAllReferences().
Also re-enable instr. scheduling pass.
llvm-svn: 1966
diff --git a/llvm/lib/Target/Sparc/Sparc.cpp b/llvm/lib/Target/Sparc/Sparc.cpp
index 666f61c..3eac9c0 100644
--- a/llvm/lib/Target/Sparc/Sparc.cpp
+++ b/llvm/lib/Target/Sparc/Sparc.cpp
@@ -234,15 +234,18 @@
static void freeMachineCode(Instruction *I) {
MachineCodeForInstruction::destroy(I);
}
-
+
bool runOnMethod(Method *M) {
for (Method::iterator MI = M->begin(), ME = M->end(); MI != ME; ++MI)
for (BasicBlock::iterator I = (*MI)->begin(), E = (*MI)->end();
I != E; ++I)
+ MachineCodeForInstruction::get(*I).dropAllReferences();
+
+ for (Method::iterator MI = M->begin(), ME = M->end(); MI != ME; ++MI)
+ for (BasicBlock::iterator I = (*MI)->begin(), E = (*MI)->end();
+ I != E; ++I)
freeMachineCode(*I);
-
- // Don't destruct MachineCodeForMethod - The global printer needs it
- //MachineCodeForMethod::destruct(M);
+
return false;
}
};
@@ -258,7 +261,7 @@
PM.add(new InstructionSelection(*this));
- //PM.add(createInstructionSchedulingWithSSAPass(*this));
+ PM.add(createInstructionSchedulingWithSSAPass(*this));
PM.add(getRegisterAllocator(*this));