Lines Matching defs:CGM

45   PrefixedFuncName.reset(new std::string(CGM.getCodeGenOpts().MainFileName));
52 static llvm::Function *getRegisterFunc(CodeGenModule &CGM) {
53 return CGM.getModule().getFunction("__llvm_profile_register_functions");
56 static llvm::BasicBlock *getOrInsertRegisterBB(CodeGenModule &CGM) {
58 if (CGM.getTarget().getTriple().isOSDarwin())
62 if (llvm::Function *RegisterF = getRegisterFunc(CGM))
66 auto *VoidTy = llvm::Type::getVoidTy(CGM.getLLVMContext());
71 &CGM.getModule());
73 if (CGM.getCodeGenOpts().DisableRedZone)
77 auto *BB = llvm::BasicBlock::Create(CGM.getLLVMContext(), "", RegisterF);
83 static llvm::Constant *getOrInsertRuntimeRegister(CodeGenModule &CGM) {
84 auto *VoidTy = llvm::Type::getVoidTy(CGM.getLLVMContext());
85 auto *VoidPtrTy = llvm::Type::getInt8PtrTy(CGM.getLLVMContext());
87 return CGM.getModule().getOrInsertFunction("__llvm_profile_register_function",
91 static bool isMachO(const CodeGenModule &CGM) {
92 return CGM.getTarget().getTriple().isOSBinFormatMachO();
95 static StringRef getCountersSection(const CodeGenModule &CGM) {
96 return isMachO(CGM) ? "__DATA,__llvm_prf_cnts" : "__llvm_prf_cnts";
99 static StringRef getNameSection(const CodeGenModule &CGM) {
100 return isMachO(CGM) ? "__DATA,__llvm_prf_names" : "__llvm_prf_names";
103 static StringRef getDataSection(const CodeGenModule &CGM) {
104 return isMachO(CGM) ? "__DATA,__llvm_prf_data" : "__llvm_prf_data";
109 llvm::LLVMContext &Ctx = CGM.getLLVMContext();
112 auto *Name = new llvm::GlobalVariable(CGM.getModule(), VarName->getType(),
115 Name->setSection(getNameSection(CGM));
135 new llvm::GlobalVariable(CGM.getModule(), DataTy, true, VarLinkage,
140 Data->setSection(getDataSection(CGM));
153 CGM.addUsedGlobal(Data);
165 auto *RegisterBB = getOrInsertRegisterBB(CGM);
169 auto *VoidPtrTy = llvm::Type::getInt8PtrTy(CGM.getLLVMContext());
170 Builder.CreateCall(getOrInsertRuntimeRegister(CGM),
174 llvm::Function *CodeGenPGO::emitInitialization(CodeGenModule &CGM) {
175 if (!CGM.getCodeGenOpts().ProfileInstrGenerate)
178 assert(CGM.getModule().getFunction("__llvm_profile_init") == nullptr &&
182 llvm::Constant *RegisterF = getRegisterFunc(CGM);
187 auto *VoidTy = llvm::Type::getVoidTy(CGM.getLLVMContext());
190 "__llvm_profile_init", &CGM.getModule());
193 if (CGM.getCodeGenOpts().DisableRedZone)
197 CGBuilderTy Builder(llvm::BasicBlock::Create(CGM.getLLVMContext(), "", F));
781 static void emitRuntimeHook(CodeGenModule &CGM) {
784 if (CGM.getModule().getGlobalVariable(RuntimeVarName))
788 llvm::LLVMContext &Ctx = CGM.getLLVMContext();
790 auto *Var = new llvm::GlobalVariable(CGM.getModule(), Int32Ty, false,
797 RuntimeUserName, &CGM.getModule());
799 if (CGM.getCodeGenOpts().DisableRedZone)
801 CGBuilderTy Builder(llvm::BasicBlock::Create(CGM.getLLVMContext(), "", User));
807 CGM.addUsedGlobal(User);
811 bool InstrumentRegions = CGM.getCodeGenOpts().ProfileInstrGenerate;
812 llvm::IndexedInstrProfReader *PGOReader = CGM.getPGOReader();
836 emitRuntimeHook(CGM);
840 SourceManager &SM = CGM.getContext().getSourceManager();
895 llvm::LLVMContext &Ctx = CGM.getLLVMContext();
899 new llvm::GlobalVariable(CGM.getModule(), CounterTy, false, VarLinkage,
903 RegionCounters->setSection(getCountersSection(CGM));
918 CGM.getPGOStats().addVisited(IsInMainFile);
922 CGM.getPGOStats().addMissing(IsInMainFile);
926 CGM.getPGOStats().addMismatched(IsInMainFile);
971 llvm::MDBuilder MDHelper(CGM.getLLVMContext());
994 llvm::MDBuilder MDHelper(CGM.getLLVMContext());