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