[NFC][LLVM][NVPTX] Cleanup pass initialization for NVPTX (#134311)
- Move all pass initialization function calls to NVPTX target initialization and out of individual pass constructors. - Move all pass initialization function declaration to NVPTX.h. - https://github.com/llvm/llvm-project/issues/111767
This commit is contained in:
@@ -55,6 +55,24 @@ MachineFunctionPass *createNVPTXPeephole();
|
||||
MachineFunctionPass *createNVPTXProxyRegErasurePass();
|
||||
MachineFunctionPass *createNVPTXForwardParamsPass();
|
||||
|
||||
void initializeGenericToNVVMLegacyPassPass(PassRegistry &);
|
||||
void initializeNVPTXAllocaHoistingPass(PassRegistry &);
|
||||
void initializeNVPTXAssignValidGlobalNamesPass(PassRegistry &);
|
||||
void initializeNVPTXAtomicLowerPass(PassRegistry &);
|
||||
void initializeNVPTXCtorDtorLoweringLegacyPass(PassRegistry &);
|
||||
void initializeNVPTXLowerAggrCopiesPass(PassRegistry &);
|
||||
void initializeNVPTXLowerAllocaPass(PassRegistry &);
|
||||
void initializeNVPTXLowerUnreachablePass(PassRegistry &);
|
||||
void initializeNVPTXCtorDtorLoweringLegacyPass(PassRegistry &);
|
||||
void initializeNVPTXLowerArgsLegacyPassPass(PassRegistry &);
|
||||
void initializeNVPTXProxyRegErasurePass(PassRegistry &);
|
||||
void initializeNVPTXForwardParamsPassPass(PassRegistry &);
|
||||
void initializeNVVMIntrRangePass(PassRegistry &);
|
||||
void initializeNVVMReflectPass(PassRegistry &);
|
||||
void initializeNVPTXAAWrapperPassPass(PassRegistry &);
|
||||
void initializeNVPTXExternalAAWrapperPass(PassRegistry &);
|
||||
void initializeNVPTXPeepholePass(PassRegistry &);
|
||||
|
||||
struct NVVMIntrRangePass : PassInfoMixin<NVVMIntrRangePass> {
|
||||
PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM);
|
||||
};
|
||||
|
||||
@@ -45,9 +45,7 @@ ImmutablePass *llvm::createNVPTXExternalAAWrapperPass() {
|
||||
return new NVPTXExternalAAWrapper();
|
||||
}
|
||||
|
||||
NVPTXAAWrapperPass::NVPTXAAWrapperPass() : ImmutablePass(ID) {
|
||||
initializeNVPTXAAWrapperPassPass(*PassRegistry::getPassRegistry());
|
||||
}
|
||||
NVPTXAAWrapperPass::NVPTXAAWrapperPass() : ImmutablePass(ID) {}
|
||||
|
||||
void NVPTXAAWrapperPass::getAnalysisUsage(AnalysisUsage &AU) const {
|
||||
AU.setPreservesAll();
|
||||
|
||||
@@ -98,9 +98,7 @@ public:
|
||||
};
|
||||
|
||||
ImmutablePass *createNVPTXAAWrapperPass();
|
||||
void initializeNVPTXAAWrapperPassPass(PassRegistry &);
|
||||
ImmutablePass *createNVPTXExternalAAWrapperPass();
|
||||
void initializeNVPTXExternalAAWrapperPass(PassRegistry &);
|
||||
|
||||
} // end namespace llvm
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "NVPTXAllocaHoisting.h"
|
||||
#include "NVPTX.h"
|
||||
#include "llvm/CodeGen/StackProtector.h"
|
||||
#include "llvm/IR/Constants.h"
|
||||
#include "llvm/IR/Function.h"
|
||||
@@ -57,10 +58,6 @@ bool NVPTXAllocaHoisting::runOnFunction(Function &function) {
|
||||
|
||||
char NVPTXAllocaHoisting::ID = 0;
|
||||
|
||||
namespace llvm {
|
||||
void initializeNVPTXAllocaHoistingPass(PassRegistry &);
|
||||
}
|
||||
|
||||
INITIALIZE_PASS(
|
||||
NVPTXAllocaHoisting, "alloca-hoisting",
|
||||
"Hoisting alloca instructions in non-entry blocks to the entry block",
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
namespace llvm {
|
||||
class FunctionPass;
|
||||
|
||||
extern FunctionPass *createAllocaHoisting();
|
||||
FunctionPass *createAllocaHoisting();
|
||||
} // end namespace llvm
|
||||
|
||||
#endif
|
||||
|
||||
@@ -38,10 +38,6 @@ public:
|
||||
|
||||
char NVPTXAssignValidGlobalNames::ID = 0;
|
||||
|
||||
namespace llvm {
|
||||
void initializeNVPTXAssignValidGlobalNamesPass(PassRegistry &);
|
||||
}
|
||||
|
||||
INITIALIZE_PASS(NVPTXAssignValidGlobalNames, "nvptx-assign-valid-global-names",
|
||||
"Assign valid PTX names to globals", false, false)
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "NVPTXAtomicLower.h"
|
||||
#include "NVPTX.h"
|
||||
#include "llvm/CodeGen/StackProtector.h"
|
||||
#include "llvm/IR/Function.h"
|
||||
#include "llvm/IR/InstIterator.h"
|
||||
@@ -55,10 +56,6 @@ bool NVPTXAtomicLower::runOnFunction(Function &F) {
|
||||
|
||||
char NVPTXAtomicLower::ID = 0;
|
||||
|
||||
namespace llvm {
|
||||
void initializeNVPTXAtomicLowerPass(PassRegistry &);
|
||||
}
|
||||
|
||||
INITIALIZE_PASS(NVPTXAtomicLower, "nvptx-atomic-lower",
|
||||
"Lower atomics of local memory to simple load/stores", false,
|
||||
false)
|
||||
|
||||
@@ -256,7 +256,6 @@ PreservedAnalyses NVPTXCtorDtorLoweringPass::run(Module &M,
|
||||
}
|
||||
|
||||
char NVPTXCtorDtorLoweringLegacy::ID = 0;
|
||||
char &llvm::NVPTXCtorDtorLoweringLegacyPassID = NVPTXCtorDtorLoweringLegacy::ID;
|
||||
INITIALIZE_PASS(NVPTXCtorDtorLoweringLegacy, DEBUG_TYPE,
|
||||
"Lower ctors and dtors for NVPTX", false, false)
|
||||
|
||||
|
||||
@@ -15,9 +15,6 @@ namespace llvm {
|
||||
class Module;
|
||||
class PassRegistry;
|
||||
|
||||
extern char &NVPTXCtorDtorLoweringLegacyPassID;
|
||||
extern void initializeNVPTXCtorDtorLoweringLegacyPass(PassRegistry &);
|
||||
|
||||
/// Lower llvm.global_ctors and llvm.global_dtors to special kernels.
|
||||
class NVPTXCtorDtorLoweringPass
|
||||
: public PassInfoMixin<NVPTXCtorDtorLoweringPass> {
|
||||
|
||||
@@ -136,16 +136,10 @@ static bool forwardDeviceParams(MachineFunction &MF) {
|
||||
/// Pass (Manager) Boilerplate
|
||||
/// ----------------------------------------------------------------------------
|
||||
|
||||
namespace llvm {
|
||||
void initializeNVPTXForwardParamsPassPass(PassRegistry &);
|
||||
} // namespace llvm
|
||||
|
||||
namespace {
|
||||
struct NVPTXForwardParamsPass : public MachineFunctionPass {
|
||||
static char ID;
|
||||
NVPTXForwardParamsPass() : MachineFunctionPass(ID) {
|
||||
initializeNVPTXForwardParamsPassPass(*PassRegistry::getPassRegistry());
|
||||
}
|
||||
NVPTXForwardParamsPass() : MachineFunctionPass(ID) {}
|
||||
|
||||
bool runOnMachineFunction(MachineFunction &MF) override;
|
||||
|
||||
|
||||
@@ -13,6 +13,7 @@
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
#include "NVPTXLowerAggrCopies.h"
|
||||
#include "NVPTX.h"
|
||||
#include "llvm/Analysis/TargetTransformInfo.h"
|
||||
#include "llvm/CodeGen/StackProtector.h"
|
||||
#include "llvm/IR/Constants.h"
|
||||
@@ -137,10 +138,6 @@ bool NVPTXLowerAggrCopies::runOnFunction(Function &F) {
|
||||
|
||||
} // namespace
|
||||
|
||||
namespace llvm {
|
||||
void initializeNVPTXLowerAggrCopiesPass(PassRegistry &);
|
||||
}
|
||||
|
||||
INITIALIZE_PASS(NVPTXLowerAggrCopies, "nvptx-lower-aggr-copies",
|
||||
"Lower aggregate copies, and llvm.mem* intrinsics into loops",
|
||||
false, false)
|
||||
|
||||
@@ -33,10 +33,6 @@
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
namespace llvm {
|
||||
void initializeNVPTXLowerAllocaPass(PassRegistry &);
|
||||
}
|
||||
|
||||
namespace {
|
||||
class NVPTXLowerAlloca : public FunctionPass {
|
||||
bool runOnFunction(Function &F) override;
|
||||
|
||||
@@ -161,10 +161,6 @@
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
namespace llvm {
|
||||
void initializeNVPTXLowerArgsLegacyPassPass(PassRegistry &);
|
||||
}
|
||||
|
||||
namespace {
|
||||
class NVPTXLowerArgsLegacyPass : public FunctionPass {
|
||||
bool runOnFunction(Function &F) override;
|
||||
|
||||
@@ -78,10 +78,6 @@
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
namespace llvm {
|
||||
void initializeNVPTXLowerUnreachablePass(PassRegistry &);
|
||||
}
|
||||
|
||||
namespace {
|
||||
class NVPTXLowerUnreachable : public FunctionPass {
|
||||
StringRef getPassName() const override;
|
||||
|
||||
@@ -44,17 +44,11 @@ using namespace llvm;
|
||||
|
||||
#define DEBUG_TYPE "nvptx-peephole"
|
||||
|
||||
namespace llvm {
|
||||
void initializeNVPTXPeepholePass(PassRegistry &);
|
||||
}
|
||||
|
||||
namespace {
|
||||
struct NVPTXPeephole : public MachineFunctionPass {
|
||||
public:
|
||||
static char ID;
|
||||
NVPTXPeephole() : MachineFunctionPass(ID) {
|
||||
initializeNVPTXPeepholePass(*PassRegistry::getPassRegistry());
|
||||
}
|
||||
NVPTXPeephole() : MachineFunctionPass(ID) {}
|
||||
|
||||
bool runOnMachineFunction(MachineFunction &MF) override;
|
||||
|
||||
|
||||
@@ -24,17 +24,11 @@
|
||||
|
||||
using namespace llvm;
|
||||
|
||||
namespace llvm {
|
||||
void initializeNVPTXProxyRegErasurePass(PassRegistry &);
|
||||
}
|
||||
|
||||
namespace {
|
||||
|
||||
struct NVPTXProxyRegErasure : public MachineFunctionPass {
|
||||
static char ID;
|
||||
NVPTXProxyRegErasure() : MachineFunctionPass(ID) {
|
||||
initializeNVPTXProxyRegErasurePass(*PassRegistry::getPassRegistry());
|
||||
}
|
||||
NVPTXProxyRegErasure() : MachineFunctionPass(ID) {}
|
||||
|
||||
bool runOnMachineFunction(MachineFunction &MF) override;
|
||||
|
||||
|
||||
@@ -87,27 +87,6 @@ static cl::opt<bool> EarlyByValArgsCopy(
|
||||
cl::desc("Create a copy of byval function arguments early."),
|
||||
cl::init(false), cl::Hidden);
|
||||
|
||||
namespace llvm {
|
||||
|
||||
void initializeGenericToNVVMLegacyPassPass(PassRegistry &);
|
||||
void initializeNVPTXAllocaHoistingPass(PassRegistry &);
|
||||
void initializeNVPTXAssignValidGlobalNamesPass(PassRegistry &);
|
||||
void initializeNVPTXAtomicLowerPass(PassRegistry &);
|
||||
void initializeNVPTXCtorDtorLoweringLegacyPass(PassRegistry &);
|
||||
void initializeNVPTXLowerAggrCopiesPass(PassRegistry &);
|
||||
void initializeNVPTXLowerAllocaPass(PassRegistry &);
|
||||
void initializeNVPTXLowerUnreachablePass(PassRegistry &);
|
||||
void initializeNVPTXCtorDtorLoweringLegacyPass(PassRegistry &);
|
||||
void initializeNVPTXLowerArgsLegacyPassPass(PassRegistry &);
|
||||
void initializeNVPTXProxyRegErasurePass(PassRegistry &);
|
||||
void initializeNVPTXForwardParamsPassPass(PassRegistry &);
|
||||
void initializeNVVMIntrRangePass(PassRegistry &);
|
||||
void initializeNVVMReflectPass(PassRegistry &);
|
||||
void initializeNVPTXAAWrapperPassPass(PassRegistry &);
|
||||
void initializeNVPTXExternalAAWrapperPass(PassRegistry &);
|
||||
|
||||
} // end namespace llvm
|
||||
|
||||
extern "C" LLVM_EXTERNAL_VISIBILITY void LLVMInitializeNVPTXTarget() {
|
||||
// Register the target.
|
||||
RegisterTargetMachine<NVPTXTargetMachine32> X(getTheNVPTXTarget32());
|
||||
@@ -132,6 +111,7 @@ extern "C" LLVM_EXTERNAL_VISIBILITY void LLVMInitializeNVPTXTarget() {
|
||||
initializeNVPTXDAGToDAGISelLegacyPass(PR);
|
||||
initializeNVPTXAAWrapperPassPass(PR);
|
||||
initializeNVPTXExternalAAWrapperPass(PR);
|
||||
initializeNVPTXPeepholePass(PR);
|
||||
}
|
||||
|
||||
static std::string computeDataLayout(bool is64Bit, bool UseShortPointers) {
|
||||
|
||||
@@ -25,16 +25,11 @@ using namespace llvm;
|
||||
|
||||
#define DEBUG_TYPE "nvvm-intr-range"
|
||||
|
||||
namespace llvm { void initializeNVVMIntrRangePass(PassRegistry &); }
|
||||
|
||||
namespace {
|
||||
class NVVMIntrRange : public FunctionPass {
|
||||
public:
|
||||
static char ID;
|
||||
NVVMIntrRange() : FunctionPass(ID) {
|
||||
|
||||
initializeNVVMIntrRangePass(*PassRegistry::getPassRegistry());
|
||||
}
|
||||
NVVMIntrRange() : FunctionPass(ID) {}
|
||||
|
||||
bool runOnFunction(Function &) override;
|
||||
};
|
||||
|
||||
@@ -47,19 +47,13 @@ using namespace llvm;
|
||||
|
||||
#define DEBUG_TYPE "nvptx-reflect"
|
||||
|
||||
namespace llvm {
|
||||
void initializeNVVMReflectPass(PassRegistry &);
|
||||
}
|
||||
|
||||
namespace {
|
||||
class NVVMReflect : public FunctionPass {
|
||||
public:
|
||||
static char ID;
|
||||
unsigned int SmVersion;
|
||||
NVVMReflect() : NVVMReflect(0) {}
|
||||
explicit NVVMReflect(unsigned int Sm) : FunctionPass(ID), SmVersion(Sm) {
|
||||
initializeNVVMReflectPass(*PassRegistry::getPassRegistry());
|
||||
}
|
||||
explicit NVVMReflect(unsigned int Sm) : FunctionPass(ID), SmVersion(Sm) {}
|
||||
|
||||
bool runOnFunction(Function &) override;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user