LLVM: lib/Target/NVPTX/NVPTXTargetMachine.cpp File Reference (original) (raw)
Go to the source code of this file.
| Macros | |
|---|---|
| #define | GET_PASS_REGISTRY "NVPTXPassRegistry.def" |
| #define | ADD_CLASS_PASS_TO_PASS_NAME(NAME, CREATE_PASS) |
| #define | ADD_CLASS_PASS_TO_PASS_NAME_WITH_PARAMS(NAME, CLASS) |
| #define | MODULE_ANALYSIS(NAME, CREATE_PASS) |
| #define | MODULE_PASS(NAME, CREATE_PASS) |
| #define | MODULE_PASS_WITH_PARAMS(NAME, CLASS, CREATE_PASS, PARSER, PARAMS) |
| #define | FUNCTION_ANALYSIS(NAME, CREATE_PASS) |
| #define | FUNCTION_ALIAS_ANALYSIS(NAME, CREATE_PASS) |
| #define | FUNCTION_PASS(NAME, CREATE_PASS) |
| #define | FUNCTION_PASS_WITH_PARAMS(NAME, CLASS, CREATE_PASS, PARSER, PARAMS) |
| #define | LOOP_ANALYSIS(NAME, CREATE_PASS) |
| #define | LOOP_PASS(NAME, CREATE_PASS) |
| #define | MACHINE_FUNCTION_ANALYSIS(NAME, CREATE_PASS) |
| #define | MACHINE_FUNCTION_PASS(NAME, CREATE_PASS) |
| #define | MACHINE_FUNCTION_PASS_WITH_PARAMS(NAME, CLASS, CREATE_PASS, PARSER, PARAMS) |
| #define | ADD_PASS(NAME, CREATE_PASS) |
| #define | ADD_PASS_WITH_PARAMS(NAME, CREATE_PASS, PARSER) |
| #define | MODULE_PASS(NAME, CREATE_PASS) |
| #define | MODULE_PASS_WITH_PARAMS(NAME, CLASS, CREATE_PASS, PARSER, PARAMS) |
| #define | FUNCTION_PASS(NAME, CREATE_PASS) |
| #define | FUNCTION_PASS_WITH_PARAMS(NAME, CLASS, CREATE_PASS, PARSER, PARAMS) |
| #define | LOOP_PASS(NAME, CREATE_PASS) |
| #define | MACHINE_FUNCTION_PASS(NAME, CREATE_PASS) |
| #define | MACHINE_FUNCTION_PASS_WITH_PARAMS(NAME, CLASS, CREATE_PASS, PARSER, PARAMS) |
| #define | MODULE_ANALYSIS(NAME, CREATE_PASS) |
| #define | FUNCTION_ANALYSIS(NAME, CREATE_PASS) |
| #define | FUNCTION_ALIAS_ANALYSIS(NAME, CREATE_PASS) |
| #define | LOOP_ANALYSIS(NAME, CREATE_PASS) |
| #define | MACHINE_FUNCTION_ANALYSIS(NAME, CREATE_PASS) |
| Variables | |
|---|---|
| static cl::opt< bool > | DisableLoadStoreVectorizer ("disable-nvptx-load-store-vectorizer", cl::desc("Disable load/store vectorizer"), cl::init(false), cl::Hidden) |
| static cl::opt< bool > | DisableRequireStructuredCFG ("disable-nvptx-require-structured-cfg", cl::desc("Transitional flag to turn off NVPTX's requirement on preserving " "structured CFG. The requirement should be disabled only when " "unexpected regressions happen."), cl::init(false), cl::Hidden) |
| static cl::opt< bool > | UseShortPointersOpt ("nvptx-short-ptr", cl::desc("Use 32-bit pointers for accessing const/local/shared address spaces."), cl::init(false), cl::Hidden) |
| static cl::opt< bool > | EarlyByValArgsCopy ("nvptx-early-byval-copy", cl::desc("Create a copy of byval function arguments early."), cl::init(false), cl::Hidden) |
◆ ADD_CLASS_PASS_TO_PASS_NAME
| #define ADD_CLASS_PASS_TO_PASS_NAME | ( | NAME, |
|---|---|---|
| CREATE_PASS ) |
Value:
PIC->addClassToPassName(decltype(CREATE_PASS)::name(), NAME);
PassInstrumentationCallbacks PIC
◆ ADD_CLASS_PASS_TO_PASS_NAME_WITH_PARAMS
| #define ADD_CLASS_PASS_TO_PASS_NAME_WITH_PARAMS | ( | NAME, |
|---|---|---|
| CLASS ) |
Value:
PIC->addClassToPassName(CLASS, NAME);
◆ ADD_PASS
| #define ADD_PASS | ( | NAME, |
|---|---|---|
| CREATE_PASS ) |
Value:
if (Name == NAME) { \
PM.addPass(CREATE_PASS); \
return true; \
}
◆ ADD_PASS_WITH_PARAMS
| #define ADD_PASS_WITH_PARAMS | ( | NAME, |
|---|---|---|
| CREATE_PASS, | ||
| PARSER ) |
Value:
if (!Params) { \
errs() << NAME ": " << toString(Params.takeError()) << '\n'; \
return false; \
} \
PM.addPass(CREATE_PASS(Params.get())); \
return true; \
}
static bool checkParametrizedPassName(StringRef Name, StringRef PassName)
static auto parsePassParameters(ParametersParseCallableT &&Parser, StringRef Name, StringRef PassName) -> decltype(Parser(StringRef{}))
This performs customized parsing of pass name with parameters.
std::string toString(const APInt &I, unsigned Radix, bool Signed, bool formatAsCLiteral=false, bool UpperCase=true, bool InsertSeparators=false)
◆ FUNCTION_ALIAS_ANALYSIS [1/2]
| #define FUNCTION_ALIAS_ANALYSIS | ( | NAME, |
|---|---|---|
| CREATE_PASS ) |
Value:
#define ADD_CLASS_PASS_TO_PASS_NAME(NAME, CREATE_PASS)
◆ FUNCTION_ALIAS_ANALYSIS [2/2]
| #define FUNCTION_ALIAS_ANALYSIS | ( | NAME, |
|---|---|---|
| CREATE_PASS ) |
Value:
if (Name == NAME) { \
AM.registerFunctionAnalysis< \
std::remove_reference_t<decltype(CREATE_PASS)>>(); \
return true; \
}
◆ FUNCTION_ANALYSIS [1/2]
| #define FUNCTION_ANALYSIS | ( | NAME, |
|---|---|---|
| CREATE_PASS ) |
◆ FUNCTION_ANALYSIS [2/2]
| #define FUNCTION_ANALYSIS | ( | NAME, |
|---|---|---|
| CREATE_PASS ) |
Value:
AM.registerPass([&] { return CREATE_PASS; });
◆ FUNCTION_PASS [1/2]
| #define FUNCTION_PASS | ( | NAME, |
|---|---|---|
| CREATE_PASS ) |
◆ FUNCTION_PASS [2/2]
| #define FUNCTION_PASS | ( | NAME, |
|---|---|---|
| CREATE_PASS ) |
Value:
#define ADD_PASS(NAME, CREATE_PASS)
◆ FUNCTION_PASS_WITH_PARAMS [1/2]
| #define FUNCTION_PASS_WITH_PARAMS | ( | NAME, |
|---|---|---|
| CLASS, | ||
| CREATE_PASS, | ||
| PARSER, | ||
| PARAMS ) |
Value:
#define ADD_CLASS_PASS_TO_PASS_NAME_WITH_PARAMS(NAME, CLASS)
◆ FUNCTION_PASS_WITH_PARAMS [2/2]
| #define FUNCTION_PASS_WITH_PARAMS | ( | NAME, |
|---|---|---|
| CLASS, | ||
| CREATE_PASS, | ||
| PARSER, | ||
| PARAMS ) |
Value:
#define ADD_PASS_WITH_PARAMS(NAME, CREATE_PASS, PARSER)
◆ GET_PASS_REGISTRY
#define GET_PASS_REGISTRY "NVPTXPassRegistry.def"
◆ LOOP_ANALYSIS [1/2]
| #define LOOP_ANALYSIS | ( | NAME, |
|---|---|---|
| CREATE_PASS ) |
◆ LOOP_ANALYSIS [2/2]
| #define LOOP_ANALYSIS | ( | NAME, |
|---|---|---|
| CREATE_PASS ) |
Value:
AM.registerPass([&] { return CREATE_PASS; });
◆ LOOP_PASS [1/2]
| #define LOOP_PASS | ( | NAME, |
|---|---|---|
| CREATE_PASS ) |
◆ LOOP_PASS [2/2]
| #define LOOP_PASS | ( | NAME, |
|---|---|---|
| CREATE_PASS ) |
◆ MACHINE_FUNCTION_ANALYSIS [1/2]
| #define MACHINE_FUNCTION_ANALYSIS | ( | NAME, |
|---|---|---|
| CREATE_PASS ) |
◆ MACHINE_FUNCTION_ANALYSIS [2/2]
| #define MACHINE_FUNCTION_ANALYSIS | ( | NAME, |
|---|---|---|
| CREATE_PASS ) |
Value:
AM.registerPass([&] { return CREATE_PASS; });
◆ MACHINE_FUNCTION_PASS [1/2]
| #define MACHINE_FUNCTION_PASS | ( | NAME, |
|---|---|---|
| CREATE_PASS ) |
◆ MACHINE_FUNCTION_PASS [2/2]
| #define MACHINE_FUNCTION_PASS | ( | NAME, |
|---|---|---|
| CREATE_PASS ) |
◆ MACHINE_FUNCTION_PASS_WITH_PARAMS [1/2]
| #define MACHINE_FUNCTION_PASS_WITH_PARAMS | ( | NAME, |
|---|---|---|
| CLASS, | ||
| CREATE_PASS, | ||
| PARSER, | ||
| PARAMS ) |
◆ MACHINE_FUNCTION_PASS_WITH_PARAMS [2/2]
| #define MACHINE_FUNCTION_PASS_WITH_PARAMS | ( | NAME, |
|---|---|---|
| CLASS, | ||
| CREATE_PASS, | ||
| PARSER, | ||
| PARAMS ) |
◆ MODULE_ANALYSIS [1/2]
| #define MODULE_ANALYSIS | ( | NAME, |
|---|---|---|
| CREATE_PASS ) |
◆ MODULE_ANALYSIS [2/2]
| #define MODULE_ANALYSIS | ( | NAME, |
|---|---|---|
| CREATE_PASS ) |
Value:
AM.registerPass([&] { return CREATE_PASS; });
◆ MODULE_PASS [1/2]
| #define MODULE_PASS | ( | NAME, |
|---|---|---|
| CREATE_PASS ) |
◆ MODULE_PASS [2/2]
| #define MODULE_PASS | ( | NAME, |
|---|---|---|
| CREATE_PASS ) |
◆ MODULE_PASS_WITH_PARAMS [1/2]
| #define MODULE_PASS_WITH_PARAMS | ( | NAME, |
|---|---|---|
| CLASS, | ||
| CREATE_PASS, | ||
| PARSER, | ||
| PARAMS ) |
◆ MODULE_PASS_WITH_PARAMS [2/2]
| #define MODULE_PASS_WITH_PARAMS | ( | NAME, |
|---|---|---|
| CLASS, | ||
| CREATE_PASS, | ||
| PARSER, | ||
| PARAMS ) |
◆ LLVMInitializeNVPTXTarget()
Definition at line 91 of file NVPTXTargetMachine.cpp.
References llvm::PassRegistry::getPassRegistry(), llvm::getTheNVPTXTarget32(), llvm::getTheNVPTXTarget64(), llvm::initializeGenericToNVVMLegacyPassPass(), llvm::initializeNVPTXAAWrapperPassPass(), llvm::initializeNVPTXAllocaHoistingPass(), llvm::initializeNVPTXAsmPrinterPass(), llvm::initializeNVPTXAssignValidGlobalNamesPass(), llvm::initializeNVPTXAtomicLowerPass(), llvm::initializeNVPTXCtorDtorLoweringLegacyPass(), llvm::initializeNVPTXDAGToDAGISelLegacyPass(), llvm::initializeNVPTXExternalAAWrapperPass(), llvm::initializeNVPTXForwardParamsPassPass(), llvm::initializeNVPTXLowerAggrCopiesPass(), llvm::initializeNVPTXLowerAllocaPass(), llvm::initializeNVPTXLowerArgsLegacyPassPass(), llvm::initializeNVPTXLowerUnreachablePass(), llvm::initializeNVPTXPeepholePass(), llvm::initializeNVPTXPrologEpilogPassPass(), llvm::initializeNVPTXProxyRegErasurePass(), llvm::initializeNVPTXTagInvariantLoadLegacyPassPass(), llvm::initializeNVVMIntrRangePass(), llvm::initializeNVVMReflectLegacyPassPass(), LLVM_ABI, LLVM_EXTERNAL_VISIBILITY, X, and Y.
◆ DisableLoadStoreVectorizer
| cl::opt< bool > DisableLoadStoreVectorizer("disable-nvptx-load-store-vectorizer", cl::desc("Disable load/store vectorizer"), cl::init(false), cl::Hidden) ( "disable-nvptx-load-store-vectorizer" , cl::desc("Disable load/store vectorizer") , cl::init(false) , cl::Hidden ) | static |
|---|
◆ DisableRequireStructuredCFG
| cl::opt< bool > DisableRequireStructuredCFG("disable-nvptx-require-structured-cfg", cl::desc("Transitional flag to turn off NVPTX's requirement on preserving " "structured CFG. The requirement should be disabled only when " "unexpected regressions happen."), cl::init(false), cl::Hidden) ( "disable-nvptx-require-structured-cfg" , cl::desc("Transitional flag to turn off NVPTX's requirement on preserving " "structured CFG. The requirement should be disabled only when " "unexpected regressions happen.") , cl::init(false) , cl::Hidden ) | static |
|---|
◆ EarlyByValArgsCopy
◆ UseShortPointersOpt
| cl::opt< bool > UseShortPointersOpt("nvptx-short-ptr", cl::desc( "Use 32-bit pointers for accessing const/local/shared address spaces."), cl::init(false), cl::Hidden) ( "nvptx-short-ptr" , cl::desc( "Use 32-bit pointers for accessing const/local/shared address spaces.") , cl::init(false) , cl::Hidden ) | static |
|---|