aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/Sparc/SparcTargetMachine.cpp
diff options
context:
space:
mode:
authorBrian Gaeke <gaeke@uiuc.edu>2004-03-04 19:22:16 +0000
committerBrian Gaeke <gaeke@uiuc.edu>2004-03-04 19:22:16 +0000
commit7a3ae1fbada713dc6b079debf2a5ad5ba32157f7 (patch)
tree0a4f8305e657f07f1bfec5c8812c11b94a3c0d6b /lib/Target/Sparc/SparcTargetMachine.cpp
parentda5c5a5b956a3974403b74ffacfb31cf3742066b (diff)
Support -print-machineinstrs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12124 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Sparc/SparcTargetMachine.cpp')
-rw-r--r--lib/Target/Sparc/SparcTargetMachine.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/lib/Target/Sparc/SparcTargetMachine.cpp b/lib/Target/Sparc/SparcTargetMachine.cpp
index 581c535ccb..1b5b80abdb 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());
- // <insert assembly code output passes here>
- // 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;
}