Support -print-machineinstrs

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12124 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Brian Gaeke
2004-03-04 19:22:16 +00:00
parent da5c5a5b95
commit 7a3ae1fbad
2 changed files with 18 additions and 12 deletions

View File

@ -42,19 +42,22 @@ bool SparcV8TargetMachine::addPassesToEmitAssembly(PassManager &PM,
std::ostream &Out) { std::ostream &Out) {
PM.add(createSparcV8SimpleInstructionSelector(*this)); PM.add(createSparcV8SimpleInstructionSelector(*this));
// Print machine instructions as they are created. // Print machine instructions as they were initially generated.
PM.add(createMachineFunctionPrinterPass(&std::cerr)); if (PrintMachineCode)
PM.add(createMachineFunctionPrinterPass(&std::cerr));
PM.add(createRegisterAllocator()); PM.add(createRegisterAllocator());
PM.add(createPrologEpilogCodeInserter()); 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 // Print machine instructions after register allocation and prolog/epilog
// are producing. // insertion.
PM.add(createMachineFunctionPrinterPass(&Out)); if (PrintMachineCode)
PM.add(createMachineFunctionPrinterPass(&std::cerr));
// Output assembly language.
PM.add(createSparcV8CodePrinterPass(Out, *this)); PM.add(createSparcV8CodePrinterPass(Out, *this));
// Delete the MachineInstrs we generated, since they're no longer needed.
PM.add(createMachineCodeDeleter()); PM.add(createMachineCodeDeleter());
return false; return false;
} }

View File

@ -42,19 +42,22 @@ bool SparcV8TargetMachine::addPassesToEmitAssembly(PassManager &PM,
std::ostream &Out) { std::ostream &Out) {
PM.add(createSparcV8SimpleInstructionSelector(*this)); PM.add(createSparcV8SimpleInstructionSelector(*this));
// Print machine instructions as they are created. // Print machine instructions as they were initially generated.
PM.add(createMachineFunctionPrinterPass(&std::cerr)); if (PrintMachineCode)
PM.add(createMachineFunctionPrinterPass(&std::cerr));
PM.add(createRegisterAllocator()); PM.add(createRegisterAllocator());
PM.add(createPrologEpilogCodeInserter()); 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 // Print machine instructions after register allocation and prolog/epilog
// are producing. // insertion.
PM.add(createMachineFunctionPrinterPass(&Out)); if (PrintMachineCode)
PM.add(createMachineFunctionPrinterPass(&std::cerr));
// Output assembly language.
PM.add(createSparcV8CodePrinterPass(Out, *this)); PM.add(createSparcV8CodePrinterPass(Out, *this));
// Delete the MachineInstrs we generated, since they're no longer needed.
PM.add(createMachineCodeDeleter()); PM.add(createMachineCodeDeleter());
return false; return false;
} }