mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-12-21 02:59:15 +00:00
make -print-machineinstrs work for both SparcV9 and X86
llvm-svn: 12122
This commit is contained in:
parent
e8ebdcc780
commit
0b913593ae
@ -16,6 +16,10 @@
|
||||
#define LLVM_TARGET_TARGETMACHINEIMPLS_H
|
||||
|
||||
namespace llvm {
|
||||
/// Command line options shared between TargetMachine implementations -
|
||||
/// these should go in their own header eventually.
|
||||
///
|
||||
extern bool PrintMachineCode;
|
||||
|
||||
class TargetMachine;
|
||||
class Module;
|
||||
|
@ -162,6 +162,10 @@ SparcV9TargetMachine::addPassesToEmitAssembly(PassManager &PM, std::ostream &Out
|
||||
PM.add(createInstructionSchedulingWithSSAPass(*this));
|
||||
|
||||
PM.add(getRegisterAllocator(*this));
|
||||
|
||||
if (PrintMachineCode)
|
||||
PM.add(createMachineFunctionPrinterPass(&std::cerr));
|
||||
|
||||
PM.add(createPrologEpilogInsertionPass());
|
||||
|
||||
if (!DisablePeephole)
|
||||
|
@ -14,8 +14,22 @@
|
||||
#include "llvm/Target/TargetMachine.h"
|
||||
#include "llvm/Type.h"
|
||||
#include "llvm/IntrinsicLowering.h"
|
||||
#include "Support/CommandLine.h"
|
||||
using namespace llvm;
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// Command-line options that tend to be useful on more than one back-end.
|
||||
//
|
||||
|
||||
namespace llvm {
|
||||
bool PrintMachineCode;
|
||||
};
|
||||
namespace {
|
||||
cl::opt<bool, true> PrintCode("print-machineinstrs",
|
||||
cl::desc("Print generated machine code"),
|
||||
cl::location(PrintMachineCode), cl::init(false));
|
||||
};
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// TargetMachine Class
|
||||
//
|
||||
|
@ -25,8 +25,6 @@
|
||||
using namespace llvm;
|
||||
|
||||
namespace {
|
||||
cl::opt<bool> PrintCode("print-machineinstrs",
|
||||
cl::desc("Print generated machine code"));
|
||||
cl::opt<bool> NoPatternISel("disable-pattern-isel", cl::init(true),
|
||||
cl::desc("Use the 'simple' X86 instruction selector"));
|
||||
cl::opt<bool> NoSSAPeephole("disable-ssa-peephole", cl::init(true),
|
||||
@ -79,18 +77,18 @@ bool X86TargetMachine::addPassesToEmitAssembly(PassManager &PM,
|
||||
PM.add(createX86SSAPeepholeOptimizerPass());
|
||||
|
||||
// Print the instruction selected machine code...
|
||||
if (PrintCode)
|
||||
if (PrintMachineCode)
|
||||
PM.add(createMachineFunctionPrinterPass(&std::cerr));
|
||||
|
||||
// Perform register allocation to convert to a concrete x86 representation
|
||||
PM.add(createRegisterAllocator());
|
||||
|
||||
if (PrintCode)
|
||||
if (PrintMachineCode)
|
||||
PM.add(createMachineFunctionPrinterPass(&std::cerr));
|
||||
|
||||
PM.add(createX86FloatingPointStackifierPass());
|
||||
|
||||
if (PrintCode)
|
||||
if (PrintMachineCode)
|
||||
PM.add(createMachineFunctionPrinterPass(&std::cerr));
|
||||
|
||||
// Insert prolog/epilog code. Eliminate abstract frame index references...
|
||||
@ -98,7 +96,7 @@ bool X86TargetMachine::addPassesToEmitAssembly(PassManager &PM,
|
||||
|
||||
PM.add(createX86PeepholeOptimizerPass());
|
||||
|
||||
if (PrintCode) // Print the register-allocated code
|
||||
if (PrintMachineCode) // Print the register-allocated code
|
||||
PM.add(createX86CodePrinterPass(std::cerr, *this));
|
||||
|
||||
if (!DisableOutput)
|
||||
@ -138,18 +136,18 @@ void X86JITInfo::addPassesToJITCompile(FunctionPassManager &PM) {
|
||||
// FIXME: Add SSA based peephole optimizer here.
|
||||
|
||||
// Print the instruction selected machine code...
|
||||
if (PrintCode)
|
||||
if (PrintMachineCode)
|
||||
PM.add(createMachineFunctionPrinterPass(&std::cerr));
|
||||
|
||||
// Perform register allocation to convert to a concrete x86 representation
|
||||
PM.add(createRegisterAllocator());
|
||||
|
||||
if (PrintCode)
|
||||
if (PrintMachineCode)
|
||||
PM.add(createMachineFunctionPrinterPass(&std::cerr));
|
||||
|
||||
PM.add(createX86FloatingPointStackifierPass());
|
||||
|
||||
if (PrintCode)
|
||||
if (PrintMachineCode)
|
||||
PM.add(createMachineFunctionPrinterPass(&std::cerr));
|
||||
|
||||
// Insert prolog/epilog code. Eliminate abstract frame index references...
|
||||
@ -157,7 +155,7 @@ void X86JITInfo::addPassesToJITCompile(FunctionPassManager &PM) {
|
||||
|
||||
PM.add(createX86PeepholeOptimizerPass());
|
||||
|
||||
if (PrintCode) // Print the register-allocated code
|
||||
if (PrintMachineCode) // Print the register-allocated code
|
||||
PM.add(createX86CodePrinterPass(std::cerr, TM));
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user