Skip to content

Commit b88a76c

Browse files
AlexMacleanhulxv
authored andcommitted
[NVPTX] Add NewPM boilerplate to NVPTXISelDAGToDAG (#215132)
1 parent 1f9e4af commit b88a76c

3 files changed

Lines changed: 17 additions & 0 deletions

File tree

llvm/lib/Target/NVPTX/NVPTX.h

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
#define LLVM_LIB_TARGET_NVPTX_NVPTX_H
1616

1717
#include "llvm/ADT/Bitfields.h"
18+
#include "llvm/CodeGen/MachineFunctionAnalysisManager.h"
19+
#include "llvm/CodeGen/SelectionDAGISel.h"
1820
#include "llvm/IR/PassManager.h"
1921
#include "llvm/Pass.h"
2022
#include "llvm/Support/AtomicOrdering.h"
@@ -136,6 +138,11 @@ struct NVPTXTagInvariantLoadsPass
136138
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
137139
};
138140

141+
class NVPTXISelDAGToDAGPass : public SelectionDAGISelPass {
142+
public:
143+
NVPTXISelDAGToDAGPass(NVPTXTargetMachine &TM, CodeGenOptLevel OptLevel);
144+
};
145+
139146
namespace NVPTX {
140147
enum DrvInterface {
141148
NVCL,

llvm/lib/Target/NVPTX/NVPTXISelDAGToDAG.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -190,6 +190,10 @@ char NVPTXDAGToDAGISelLegacy::ID = 0;
190190

191191
INITIALIZE_PASS(NVPTXDAGToDAGISelLegacy, DEBUG_TYPE, PASS_NAME, false, false)
192192

193+
NVPTXISelDAGToDAGPass::NVPTXISelDAGToDAGPass(NVPTXTargetMachine &TM,
194+
CodeGenOptLevel OptLevel)
195+
: SelectionDAGISelPass(std::make_unique<NVPTXDAGToDAGISel>(TM, OptLevel)) {}
196+
193197
NVPTXDAGToDAGISel::NVPTXDAGToDAGISel(NVPTXTargetMachine &tm,
194198
CodeGenOptLevel OptLevel)
195199
: SelectionDAGISel(tm, OptLevel), TM(tm) {}

llvm/lib/Target/NVPTX/NVPTXPassRegistry.def

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,3 +44,9 @@ FUNCTION_PASS("nvptx-mark-kernel-ptrs-global", NVPTXMarkKernelPtrsGlobalPass())
4444
FUNCTION_PASS("nvptx-tag-invariant-loads", NVPTXTagInvariantLoadsPass())
4545
FUNCTION_PASS("nvptx-ir-peephole", NVPTXIRPeepholePass())
4646
#undef FUNCTION_PASS
47+
48+
#ifndef MACHINE_FUNCTION_PASS
49+
#define MACHINE_FUNCTION_PASS(NAME, CREATE_PASS)
50+
#endif
51+
MACHINE_FUNCTION_PASS("nvptx-isel", NVPTXISelDAGToDAGPass(*this, getOptLevel()))
52+
#undef MACHINE_FUNCTION_PASS

0 commit comments

Comments
 (0)