71 Subtarget(TT, CPU, FS, is64bit), DL(Subtarget.getDataLayout()),
72 InstrInfo(*this), TLInfo(*this), TSInfo(*this),
78 void NVPTXTargetMachine32::anchor() {}
86 void NVPTXTargetMachine64::anchor() {}
101 return getTM<NVPTXTargetMachine>();
104 virtual void addIRPasses();
105 virtual bool addInstSelector();
106 virtual bool addPreRegAlloc();
107 virtual bool addPostRegAlloc();
110 virtual
void addFastRegAlloc(
FunctionPass *RegAllocPass);
111 virtual
void addOptimizedRegAlloc(
FunctionPass *RegAllocPass);
116 NVPTXPassConfig *PassConfig =
new NVPTXPassConfig(
this, PM);
120 void NVPTXPassConfig::addIRPasses() {
135 bool NVPTXPassConfig::addInstSelector() {
143 bool NVPTXPassConfig::addPreRegAlloc() {
return false; }
144 bool NVPTXPassConfig::addPostRegAlloc() {
149 FunctionPass *NVPTXPassConfig::createTargetRegisterAllocator(
bool) {
153 void NVPTXPassConfig::addFastRegAlloc(
FunctionPass *RegAllocPass) {
154 assert(!RegAllocPass &&
"NVPTX uses no regalloc!");
159 void NVPTXPassConfig::addOptimizedRegAlloc(
FunctionPass *RegAllocPass) {
160 assert(!RegAllocPass &&
"NVPTX uses no regalloc!");
172 printAndVerify(
"After Machine Scheduling");
180 printAndVerify(
"After StackSlotColoring");
static PassRegistry * getPassRegistry()
void LLVMInitializeNVPTXTarget()
virtual void addIRPasses()
NVPTXTargetMachine(const Target &T, StringRef TT, StringRef CPU, StringRef FS, const TargetOptions &Options, Reloc::Model RM, CodeModel::Model CM, CodeGenOpt::Level OP, bool is64bit)
char & RegisterCoalescerID
RegisterCoalescer - This pass merges live ranges to eliminate copies.
MachineFunctionPass * createNVPTXPrologEpilogPass()
char & MachineSchedulerID
MachineScheduler - This pass schedules machine instructions.
ModulePass * createGenericToNVVMPass()
char & ProcessImplicitDefsID
ProcessImpicitDefs pass - This pass removes IMPLICIT_DEFs.
NVPTXTargetMachine64(const Target &T, StringRef TT, StringRef CPU, StringRef FS, const TargetOptions &Options, Reloc::Model RM, CodeModel::Model CM, CodeGenOpt::Level OL)
char & MachineLoopInfoID
MachineLoopInfo - This pass is a loop analysis pass.
FunctionPass * createLowerAggrCopies()
char & StackSlotColoringID
StackSlotColoring - This pass performs stack slot coloring.
void initializeNVVMReflectPass(PassRegistry &)
FunctionPass * createSplitBBatBarPass()
char & MachineCopyPropagationID
void initializeGenericToNVVMPass(PassRegistry &)
FunctionPass * createAllocaHoisting()
NVPTXTargetMachine32(const Target &T, StringRef TT, StringRef CPU, StringRef FS, const TargetOptions &Options, Reloc::Model RM, CodeModel::Model CM, CodeGenOpt::Level OL)
char & PrologEpilogCodeInserterID
FunctionPass * createNVPTXISelDag(NVPTXTargetMachine &TM, llvm::CodeGenOpt::Level OptLevel)
char & TwoAddressInstructionPassID
char & BranchFolderPassID
static GCMetadataPrinterRegistry::Add< OcamlGCMetadataPrinter > Y("ocaml","ocaml 3.10-compatible collector")
static RegisterPass< NVPTXAllocaHoisting > X("alloca-hoisting","Hoisting alloca instructions in non-entry ""blocks to the entry block")