Bug re-fix: put back MachineCodeForInstruction::get(*I).dropAllReferences().
authorVikram S. Adve <vadve@cs.uiuc.edu>
Sun, 24 Mar 2002 03:35:16 +0000 (03:35 +0000)
committerVikram S. Adve <vadve@cs.uiuc.edu>
Sun, 24 Mar 2002 03:35:16 +0000 (03:35 +0000)
Also re-enable instr. scheduling pass.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1966 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/SparcV9/SparcV9TargetMachine.cpp

index 666f61c8fac5574db55df87739e45c2f725923b6..3eac9c0d2a2b3d4091ac25756da63b2427704a0c 100644 (file)
@@ -234,15 +234,18 @@ struct FreeMachineCodeForMethod : public MethodPass {
   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 @@ void UltraSparc::addPassesToEmitAssembly(PassManager &PM, std::ostream &Out) {
 
   PM.add(new InstructionSelection(*this));
 
-  //PM.add(createInstructionSchedulingWithSSAPass(*this));
+  PM.add(createInstructionSchedulingWithSSAPass(*this));
 
   PM.add(getRegisterAllocator(*this));