50 if (GV.hasLocalLinkage() ||
51 (GV.hasExternalLinkage() &&
58 if (
F.hasLocalLinkage())
66class NVPTXAssignValidGlobalNamesLegacyPass :
public ModulePass {
69 NVPTXAssignValidGlobalNamesLegacyPass() : ModulePass(ID) {}
75char NVPTXAssignValidGlobalNamesLegacyPass::ID = 0;
78 "nvptx-assign-valid-global-names",
79 "Assign valid PTX names to globals",
false,
false)
82 return new NVPTXAssignValidGlobalNamesLegacyPass();
Module.h This file contains the declarations for the Module class.
static bool assignValidName(GlobalValue &GV)
Give GV a name that is a valid PTX identifier, returning whether it had to be renamed.
static bool assignValidGlobalNames(Module &M)
ModuleAnalysisManager MAM
#define INITIALIZE_PASS(passName, arg, name, cfg, analysis)
Represents analyses that only rely on functions' control flow.
ModulePass class - This class is used to implement unstructured interprocedural optimizations and ana...
A Module instance is used to store all the information related to an LLVM module.
PreservedAnalyses run(Module &M, ModuleAnalysisManager &MAM)
A set of analyses that are preserved following a run of a transformation pass.
static PreservedAnalyses none()
Convenience factory function for the empty preserved set.
static PreservedAnalyses all()
Construct a special preserved set that preserves all passes.
PreservedAnalyses & preserveSet()
Mark an analysis set as preserved.
LLVM_ABI void setName(const Twine &Name)
Change the name of the value.
LLVM_ABI StringRef getName() const
Return a constant reference to the value's name.
std::string getValidPTXIdentifier(StringRef Name)
This is an optimization pass for GlobalISel generic memory operations.
ModulePass * createNVPTXAssignValidGlobalNamesLegacyPass()
AnalysisManager< Module > ModuleAnalysisManager
Convenience typedef for the Module analysis manager.