From d7e6becd3e6038ff2d278ed28f05eb914a6971eb Mon Sep 17 00:00:00 2001 From: "Vikram S. Adve" Date: Sun, 24 Mar 2002 03:35:16 +0000 Subject: [PATCH] Bug re-fix: put back MachineCodeForInstruction::get(*I).dropAllReferences(). 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 | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/lib/Target/SparcV9/SparcV9TargetMachine.cpp b/lib/Target/SparcV9/SparcV9TargetMachine.cpp index 666f61c8fac..3eac9c0d2a2 100644 --- a/lib/Target/SparcV9/SparcV9TargetMachine.cpp +++ b/lib/Target/SparcV9/SparcV9TargetMachine.cpp @@ -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)); -- 2.34.1