Lines Matching defs:M

29 static void appendToGlobalArray(StringRef ArrayName, Module &M, Function *F,
31 IRBuilder<> IRB(M.getContext());
38 if (GlobalVariable *GVCtor = M.getNamedGlobal(ArrayName)) {
70 (void)new GlobalVariable(M, NewInit->getType(), false,
74 void llvm::appendToGlobalCtors(Module &M, Function *F, int Priority, Constant *Data) {
75 appendToGlobalArray("llvm.global_ctors", M, F, Priority, Data);
78 void llvm::appendToGlobalDtors(Module &M, Function *F, int Priority, Constant *Data) {
79 appendToGlobalArray("llvm.global_dtors", M, F, Priority, Data);
92 static void appendToUsedList(Module &M, StringRef Name, ArrayRef<GlobalValue *> Values) {
93 GlobalVariable *GV = M.getGlobalVariable(Name);
100 Type *ArrayEltTy = llvm::PointerType::getUnqual(M.getContext());
108 GV = new llvm::GlobalVariable(M, ATy, false, GlobalValue::AppendingLinkage,
114 void llvm::appendToUsed(Module &M, ArrayRef<GlobalValue *> Values) {
115 appendToUsedList(M, "llvm.used", Values);
118 void llvm::appendToCompilerUsed(Module &M, ArrayRef<GlobalValue *> Values) {
119 appendToUsedList(M, "llvm.compiler.used", Values);
122 static void removeFromUsedList(Module &M, StringRef Name,
124 GlobalVariable *GV = M.getNamedGlobal(Name);
142 new GlobalVariable(M, ATy, false, GlobalValue::AppendingLinkage,
152 void llvm::removeFromUsedLists(Module &M,
154 removeFromUsedList(M, "llvm.used", ShouldRemove);
155 removeFromUsedList(M, "llvm.compiler.used", ShouldRemove);
158 void llvm::setKCFIType(Module &M, Function &F, StringRef MangledType) {
159 if (!M.getModuleFlag("kcfi"))
162 LLVMContext &Ctx = M.getContext();
165 if (M.getModuleFlag("cfi-normalize-integers"))
174 M.getModuleFlag("kcfi-offset"))) {
180 FunctionCallee llvm::declareSanitizerInitFunction(Module &M, StringRef InitName,
184 auto *VoidTy = Type::getVoidTy(M.getContext());
186 auto FnCallee = M.getOrInsertFunction(InitName, FnTy);
193 Function *llvm::createSanitizerCtor(Module &M, StringRef CtorName) {
195 FunctionType::get(Type::getVoidTy(M.getContext()), false),
196 GlobalValue::InternalLinkage, M.getDataLayout().getProgramAddressSpace(),
197 CtorName, &M);
199 setKCFIType(M, *Ctor, "_ZTSFvvE"); // void (*)(void)
200 BasicBlock *CtorBB = BasicBlock::Create(M.getContext(), "", Ctor);
201 ReturnInst::Create(M.getContext(), CtorBB);
203 appendToUsed(M, {Ctor});
208 Module &M, StringRef CtorName, StringRef InitName,
215 declareSanitizerInitFunction(M, InitName, InitArgTypes, Weak);
216 Function *Ctor = createSanitizerCtor(M, CtorName);
217 IRBuilder<> IRB(M.getContext());
222 auto *EntryBB = BasicBlock::Create(M.getContext(), "entry", Ctor, RetBB);
224 BasicBlock::Create(M.getContext(), "callfunc", Ctor, RetBB);
239 FunctionCallee VersionCheckFunction = M.getOrInsertFunction(
253 Module &M, StringRef CtorName, StringRef InitName,
259 if (Function *Ctor = M.getFunction(CtorName))
263 Ctor->getReturnType() == Type::getVoidTy(M.getContext()))
265 declareSanitizerInitFunction(M, InitName, InitArgTypes, Weak)};
270 M, CtorName, InitName, InitArgTypes, InitArgs, VersionCheckName, Weak);
303 std::string llvm::getUniqueModuleId(Module *M) {
315 for (auto &F : *M)
317 for (auto &GV : M->globals())
319 for (auto &GA : M->aliases())
321 for (auto &IF : M->ifuncs())
335 void llvm::embedBufferInModule(Module &M, MemoryBufferRef Buf,
339 M.getContext(), ArrayRef(Buf.getBufferStart(), Buf.getBufferSize()));
341 M, ModuleConstant->getType(), true, GlobalValue::PrivateLinkage,
346 LLVMContext &Ctx = M.getContext();
347 NamedMDNode *MD = M.getOrInsertNamedMetadata("llvm.embedded.objects");
354 appendToCompilerUsed(M, GV);
358 Module &M, ArrayRef<GlobalIFunc *> FilteredIFuncsToLower) {
362 for (GlobalIFunc &GI : M.ifuncs())
368 LLVMContext &Ctx = M.getContext();
369 const DataLayout &DL = M.getDataLayout();
382 M, FuncPtrTableTy, false, GlobalValue::InternalLinkage,
390 DL.getProgramAddressSpace(), "", &M);
447 appendToGlobalCtors(M, NewCtor, Priority,