Lines Matching defs:M

52 static void addKernelMetadata(Module &M, GlobalValue *GV) {
53 llvm::LLVMContext &Ctx = M.getContext();
56 llvm::NamedMDNode *MD = M.getOrInsertNamedMetadata("nvvm.annotations");
91 static Function *createInitOrFiniKernelFunction(Module &M, bool IsCtor) {
94 if (M.getFunction(InitOrFiniKernelName))
98 FunctionType::get(Type::getVoidTy(M.getContext()), false),
99 GlobalValue::WeakODRLinkage, 0, InitOrFiniKernelName, &M);
100 addKernelMetadata(M, InitOrFiniKernel);
129 Module &M = *F.getParent();
130 LLVMContext &C = M.getContext();
137 auto *Begin = M.getOrInsertGlobal(
141 M, PointerType::get(C, 0),
150 auto *End = M.getOrInsertGlobal(
154 M, PointerType::get(C, 0),
207 static bool createInitOrFiniGlobals(Module &M, GlobalVariable *GV,
223 !GlobalStr.empty() ? GlobalStr : getHash(M.getSourceFileName());
232 auto *GV = new GlobalVariable(M, F->getType(), /*IsConstant=*/true,
240 appendToUsed(M, {GV});
246 static bool createInitOrFiniKernel(Module &M, StringRef GlobalName,
248 GlobalVariable *GV = M.getGlobalVariable(GlobalName);
252 if (!createInitOrFiniGlobals(M, GV, IsCtor))
258 Function *InitOrFiniKernel = createInitOrFiniKernelFunction(M, IsCtor);
268 static bool lowerCtorsAndDtors(Module &M) {
270 Modified |= createInitOrFiniKernel(M, "llvm.global_ctors", /*IsCtor =*/true);
271 Modified |= createInitOrFiniKernel(M, "llvm.global_dtors", /*IsCtor =*/false);
279 bool runOnModule(Module &M) override { return lowerCtorsAndDtors(M); }
284 PreservedAnalyses NVPTXCtorDtorLoweringPass::run(Module &M,
286 return lowerCtorsAndDtors(M) ? PreservedAnalyses::none()