From: Brian Gaeke Date: Thu, 4 Mar 2004 19:22:16 +0000 (+0000) Subject: Support -print-machineinstrs X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=7a3ae1fbada713dc6b079debf2a5ad5ba32157f7;p=oota-llvm.git Support -print-machineinstrs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12124 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/Sparc/SparcTargetMachine.cpp b/lib/Target/Sparc/SparcTargetMachine.cpp index 581c535ccb2..1b5b80abdbc 100644 --- a/lib/Target/Sparc/SparcTargetMachine.cpp +++ b/lib/Target/Sparc/SparcTargetMachine.cpp @@ -42,19 +42,22 @@ bool SparcV8TargetMachine::addPassesToEmitAssembly(PassManager &PM, std::ostream &Out) { PM.add(createSparcV8SimpleInstructionSelector(*this)); - // Print machine instructions as they are created. - PM.add(createMachineFunctionPrinterPass(&std::cerr)); + // Print machine instructions as they were initially generated. + if (PrintMachineCode) + PM.add(createMachineFunctionPrinterPass(&std::cerr)); PM.add(createRegisterAllocator()); PM.add(createPrologEpilogCodeInserter()); - // - // This is not a correct asm writer by any means, but at least we see what we - // are producing. - PM.add(createMachineFunctionPrinterPass(&Out)); + // Print machine instructions after register allocation and prolog/epilog + // insertion. + if (PrintMachineCode) + PM.add(createMachineFunctionPrinterPass(&std::cerr)); + // Output assembly language. PM.add(createSparcV8CodePrinterPass(Out, *this)); + // Delete the MachineInstrs we generated, since they're no longer needed. PM.add(createMachineCodeDeleter()); return false; } diff --git a/lib/Target/SparcV8/SparcV8TargetMachine.cpp b/lib/Target/SparcV8/SparcV8TargetMachine.cpp index 581c535ccb2..1b5b80abdbc 100644 --- a/lib/Target/SparcV8/SparcV8TargetMachine.cpp +++ b/lib/Target/SparcV8/SparcV8TargetMachine.cpp @@ -42,19 +42,22 @@ bool SparcV8TargetMachine::addPassesToEmitAssembly(PassManager &PM, std::ostream &Out) { PM.add(createSparcV8SimpleInstructionSelector(*this)); - // Print machine instructions as they are created. - PM.add(createMachineFunctionPrinterPass(&std::cerr)); + // Print machine instructions as they were initially generated. + if (PrintMachineCode) + PM.add(createMachineFunctionPrinterPass(&std::cerr)); PM.add(createRegisterAllocator()); PM.add(createPrologEpilogCodeInserter()); - // - // This is not a correct asm writer by any means, but at least we see what we - // are producing. - PM.add(createMachineFunctionPrinterPass(&Out)); + // Print machine instructions after register allocation and prolog/epilog + // insertion. + if (PrintMachineCode) + PM.add(createMachineFunctionPrinterPass(&std::cerr)); + // Output assembly language. PM.add(createSparcV8CodePrinterPass(Out, *this)); + // Delete the MachineInstrs we generated, since they're no longer needed. PM.add(createMachineCodeDeleter()); return false; }