Lines Matching refs:CGM
174 return CGM.EmitOMPDeclareReduction(cast<OMPDeclareReductionDecl>(&D), this); in EmitDecl()
177 return CGM.EmitOMPDeclareMapper(cast<OMPDeclareMapperDecl>(&D), this); in EmitDecl()
207 CGM.getLLVMLinkageVarDefinition(&D); in EmitVarDecl()
217 return CGM.getOpenCLRuntime().EmitWorkGroupLocalVarDecl(*this, D); in EmitVarDecl()
223 static std::string getStaticDeclName(CodeGenModule &CGM, const VarDecl &D) { in getStaticDeclName() argument
224 if (CGM.getLangOpts().CPlusPlus) in getStaticDeclName()
225 return CGM.getMangledName(&D).str(); in getStaticDeclName()
234 ContextName = std::string(CGM.getMangledName(FD)); in getStaticDeclName()
236 ContextName = std::string(CGM.getBlockMangledName(GlobalDecl(), BD)); in getStaticDeclName()
352 CGM.ErrorUnsupported(D.getInit(), "constant l-value expression"); in AddInitializerToStaticVarDecl()
354 CGM.ErrorUnsupported(D.getInit(), "flexible array initializer"); in AddInitializerToStaticVarDecl()
366 CharUnits VarSize = CGM.getContext().getTypeSizeInChars(D.getType()) + in AddInitializerToStaticVarDecl()
369 CGM.getDataLayout().getTypeAllocSize(Init->getType())); in AddInitializerToStaticVarDecl()
381 CGM.getModule(), Init->getType(), OldGV->isConstant(), in AddInitializerToStaticVarDecl()
423 llvm::Constant *addr = CGM.getOrCreateStaticVarDecl(D, Linkage); in EmitStaticVarDecl()
456 CGM.AddGlobalAnnotations(&D, var); in EmitStaticVarDecl()
471 CGM.addUsedGlobal(var); in EmitStaticVarDecl()
473 CGM.addUsedOrCompilerUsedGlobal(var); in EmitStaticVarDecl()
475 if (CGM.getCodeGenOpts().KeepPersistentStorageVariables) in EmitStaticVarDecl()
476 CGM.addUsedOrCompilerUsedGlobal(var); in EmitStaticVarDecl()
486 CGM.setStaticLocalDeclAddress(&D, castedAddr); in EmitStaticVarDecl()
488 CGM.getSanitizerMetadata()->reportGlobal(var, D); in EmitStaticVarDecl()
492 if (DI && CGM.getCodeGenOpts().hasReducedDebugInfo()) { in EmitStaticVarDecl()
593 auto &RT = CGF.CGM.getOpenMPRuntime(); in Emit()
835 llvm::Value *zero = CGM.getNullPointer(ty, tempLV.getType()); in EmitScalarInit()
950 static void emitStoresForInitAfterBZero(CodeGenModule &CGM, in emitStoresForInitAfterBZero() argument
974 CGM, Elt, Builder.CreateConstInBoundsGEP2_32(Loc, 0, i), isVolatile, in emitStoresForInitAfterBZero()
988 emitStoresForInitAfterBZero(CGM, Elt, in emitStoresForInitAfterBZero()
1030 static bool shouldSplitConstantStore(CodeGenModule &CGM, in shouldSplitConstantStore() argument
1034 if (CGM.getCodeGenOpts().OptimizationLevel == 0) in shouldSplitConstantStore()
1044 static llvm::Constant *patternOrZeroFor(CodeGenModule &CGM, IsPattern isPattern, in patternOrZeroFor() argument
1047 return initializationPatternFor(CGM, Ty); in patternOrZeroFor()
1052 static llvm::Constant *constWithPadding(CodeGenModule &CGM, IsPattern isPattern,
1056 static llvm::Constant *constStructWithPadding(CodeGenModule &CGM, in constStructWithPadding() argument
1060 const llvm::DataLayout &DL = CGM.getDataLayout(); in constStructWithPadding()
1062 llvm::Type *Int8Ty = llvm::IntegerType::getInt8Ty(CGM.getLLVMContext()); in constStructWithPadding()
1071 Values.push_back(patternOrZeroFor(CGM, isPattern, PadTy)); in constStructWithPadding()
1078 auto *NewOp = constWithPadding(CGM, isPattern, CurOp); in constStructWithPadding()
1087 Values.push_back(patternOrZeroFor(CGM, isPattern, PadTy)); in constStructWithPadding()
1096 static llvm::Constant *constWithPadding(CodeGenModule &CGM, IsPattern isPattern, in constWithPadding() argument
1100 return constStructWithPadding(CGM, isPattern, STy, constant); in constWithPadding()
1111 PaddedOp = constWithPadding(CGM, isPattern, OpValue); in constWithPadding()
1116 PaddedOp = constWithPadding(CGM, isPattern, OpValue); in constWithPadding()
1182 static Address createUnnamedGlobalForMemcpyFrom(CodeGenModule &CGM, in createUnnamedGlobalForMemcpyFrom() argument
1187 Address SrcPtr = CGM.createUnnamedGlobalFrom(D, Constant, Align); in createUnnamedGlobalForMemcpyFrom()
1188 return SrcPtr.withElementType(CGM.Int8Ty); in createUnnamedGlobalForMemcpyFrom()
1191 static void emitStoresForConstant(CodeGenModule &CGM, const VarDecl &D, in emitStoresForConstant() argument
1196 uint64_t ConstantSize = CGM.getDataLayout().getTypeAllocSize(Ty); in emitStoresForConstant()
1209 auto *SizeVal = llvm::ConstantInt::get(CGM.IntPtrTy, ConstantSize); in emitStoresForConstant()
1214 auto *I = Builder.CreateMemSet(Loc, llvm::ConstantInt::get(CGM.Int8Ty, 0), in emitStoresForConstant()
1223 emitStoresForInitAfterBZero(CGM, constant, Loc, isVolatile, Builder, in emitStoresForConstant()
1231 shouldUseMemSetToInitialize(constant, ConstantSize, CGM.getDataLayout()); in emitStoresForConstant()
1240 Loc, llvm::ConstantInt::get(CGM.Int8Ty, Value), SizeVal, isVolatile); in emitStoresForConstant()
1249 CGM.getContext().getLangOpts().getTrivialAutoVarInit() == in emitStoresForConstant()
1251 if (shouldSplitConstantStore(CGM, ConstantSize)) { in emitStoresForConstant()
1256 CGM.getDataLayout().getStructLayout(STy); in emitStoresForConstant()
1261 Loc.withElementType(CGM.Int8Ty), CurOff); in emitStoresForConstant()
1262 emitStoresForConstant(CGM, D, EltPtr, isVolatile, Builder, in emitStoresForConstant()
1273 emitStoresForConstant(CGM, D, EltPtr, isVolatile, Builder, in emitStoresForConstant()
1285 CGM, D, Builder, constant, Loc.getAlignment()), in emitStoresForConstant()
1291 static void emitStoresForZeroInit(CodeGenModule &CGM, const VarDecl &D, in emitStoresForZeroInit() argument
1296 constWithPadding(CGM, IsPattern::No, llvm::Constant::getNullValue(ElTy)); in emitStoresForZeroInit()
1297 emitStoresForConstant(CGM, D, Loc, isVolatile, Builder, constant, in emitStoresForZeroInit()
1301 static void emitStoresForPatternInit(CodeGenModule &CGM, const VarDecl &D, in emitStoresForPatternInit() argument
1306 CGM, IsPattern::Yes, initializationPatternFor(CGM, ElTy)); in emitStoresForPatternInit()
1308 emitStoresForConstant(CGM, D, Loc, isVolatile, Builder, constant, in emitStoresForPatternInit()
1323 static llvm::Constant *replaceUndef(CodeGenModule &CGM, IsPattern isPattern, in replaceUndef() argument
1327 return patternOrZeroFor(CGM, isPattern, Ty); in replaceUndef()
1335 Values[Op] = replaceUndef(CGM, isPattern, OpValue); in replaceUndef()
1363 CGM.getDataLayout().getAllocaAddrSpace() && in EmitLifetimeStart()
1368 Builder.CreateCall(CGM.getLLVMLifetimeStartFn(), {SizeV, Addr}); in EmitLifetimeStart()
1375 CGM.getDataLayout().getAllocaAddrSpace() && in EmitLifetimeEnd()
1378 Builder.CreateCall(CGM.getLLVMLifetimeEndFn(), {Size, Addr}); in EmitLifetimeEnd()
1462 bool EmitDebugInfo = DI && CGM.getCodeGenOpts().hasReducedDebugInfo(); in EmitAutoVarAlloca()
1467 if (CGM.getLangOpts().OpenMPIRBuilder) in EmitAutoVarAlloca()
1472 ? CGM.getOpenMPRuntime().getAddressOfLocalVariable(*this, &D) in EmitAutoVarAlloca()
1504 (CGM.getCodeGenOpts().MergeAllConstants && !NRVO && in EmitAutoVarAlloca()
1594 llvm::TypeSize Size = CGM.getDataLayout().getTypeAllocSize(allocaTy); in EmitAutoVarAlloca()
1612 auto &RT = CGM.getOpenMPRuntime(); in EmitAutoVarAlloca()
1620 CGM.getContext().getDeclAlign(&D), in EmitAutoVarAlloca()
1788 auto allocSize = CGM.getDataLayout().getTypeAllocSize(Loc.getElementType()); in emitZeroOrPatternForAutoVarInit()
1793 if (CGM.stopAutoInit()) in emitZeroOrPatternForAutoVarInit()
1798 emitStoresForZeroInit(CGM, D, Loc, isVolatile, Builder); in emitZeroOrPatternForAutoVarInit()
1801 if (CGM.stopAutoInit()) in emitZeroOrPatternForAutoVarInit()
1806 emitStoresForPatternInit(CGM, D, Loc, isVolatile, Builder); in emitZeroOrPatternForAutoVarInit()
1828 if (CGM.stopAutoInit()) in emitZeroOrPatternForAutoVarInit()
1831 SizeVal = Builder.CreateNUWMul(SizeVal, CGM.getSize(EltSize)); in emitZeroOrPatternForAutoVarInit()
1839 if (CGM.stopAutoInit()) in emitZeroOrPatternForAutoVarInit()
1843 CGM, IsPattern::Yes, initializationPatternFor(CGM, ElTy)); in emitZeroOrPatternForAutoVarInit()
1854 SizeVal = Builder.CreateNUWMul(SizeVal, CGM.getSize(EltSize)); in emitZeroOrPatternForAutoVarInit()
1869 CGM, D, Builder, Constant, ConstantAlign), in emitZeroOrPatternForAutoVarInit()
1970 constant = constWithPadding(CGM, IsPattern::No, in EmitAutoVarInit()
1971 replaceUndef(CGM, isPattern, constant)); in EmitAutoVarInit()
1975 CGM.getTypes().typeRequiresSplitIntoByteArray(D.getType())) { in EmitAutoVarInit()
1979 llvm::Type *LoadType = CGM.getTypes().convertTypeForLoadStore( in EmitAutoVarInit()
1982 constant, LoadType, llvm::APInt::getZero(32), CGM.getDataLayout()); in EmitAutoVarInit()
2014 emitStoresForConstant(CGM, D, Loc.withElementType(CGM.Int8Ty), in EmitAutoVarInit()
2165 llvm::Constant *F = CGM.GetAddrOfFunction(FD); in EmitAutoVarCleanups()
2168 const CGFunctionInfo &Info = CGM.getTypes().arrangeFunctionDeclaration(FD); in EmitAutoVarCleanups()
2176 CGM.getLangOpts().getGC() != LangOptions::GCOnly) { in EmitAutoVarCleanups()
2616 auto AllocaAS = CGM.getASTAllocaAddressSpace(); in EmitParmDecl()
2637 CGM.getDataLayout().getAllocaAddrSpace()); in EmitParmDecl()
2665 ? CGM.getOpenMPRuntime().getAddressOfLocalVariable(*this, &D) in EmitParmDecl()
2704 if (CGM.getCodeGenOpts().OptimizationLevel == 0) { in EmitParmDecl()
2708 llvm::Value *Null = CGM.EmitNullConstant(D.getType()); in EmitParmDecl()
2747 if (CGM.getCodeGenOpts().hasReducedDebugInfo() && !CurFuncIsThunk && in EmitParmDecl()