Lines Matching refs:CGM
140 CXXThisAlignment = CGM.getClassPointerAlignment(MD->getParent()); in LoadCXXThisAddress()
159 CGM.getCXXABI().EmitMemberDataPointerAddress(*this, E, base, in EmitCXXMemberDataPointerAddress()
164 CGM.getNaturalTypeAlignment(memberType, BaseInfo, TBAAInfo); in EmitCXXMemberDataPointerAddress()
166 CGM.getDynamicOffsetAlignment(base.getAlignment(), in EmitCXXMemberDataPointerAddress()
261 (CGF.CGM.getTarget().getCXXABI().isItaniumFamily() && in ApplyNonVirtualAndVirtualOffset()
262 CGF.CGM.getItaniumVTableContext().isRelativeLayout()) in ApplyNonVirtualAndVirtualOffset()
283 alignment = CGF.CGM.getVBaseAlignment(addr.getAlignment(), in ApplyNonVirtualAndVirtualOffset()
316 CharUnits NonVirtualOffset = CGM.computeNonVirtualBaseClassOffset( in GetAddressOfBaseClass()
332 CGM.getLLVMContext(), Value.getType()->getPointerAddressSpace()); in GetAddressOfBaseClass()
335 CharUnits DerivedAlign = CGM.getClassPointerAlignment(Derived); in GetAddressOfBaseClass()
376 CGM.getCXXABI().GetVirtualBaseClassOffset(*this, Value, Derived, VBase); in GetAddressOfBaseClass()
414 CGM.GetNonVirtualBaseClassOffset(Derived, PathBegin, PathEnd); in GetAddressOfDerivedClass()
439 CGM.getClassPointerAlignment(Derived), "sub.ptr"); in GetAddressOfDerivedClass()
456 CGM.getClassPointerAlignment(Derived)); in GetAddressOfDerivedClass()
465 if (!CGM.getCXXABI().NeedsVTTParameter(GD)) { in GetVTTParameter()
481 assert(!CGM.getCXXABI().NeedsVTTParameter(CurGD) && in GetVTTParameter()
492 CGM.getVTables().getSubVTTIndex(RD, BaseSubobject(Base, BaseOffset)); in GetVTTParameter()
496 if (CGM.getCXXABI().NeedsVTTParameter(CurGD)) { in GetVTTParameter()
502 llvm::GlobalValue *VTT = CGM.getVTables().GetAddrOfVTT(RD); in GetVTTParameter()
593 if (CGF.CGM.getLangOpts().Exceptions && in EmitBaseInitializer()
671 CGF.CGM.getCXXABI().getSrcArgforCopyCtor(Constructor, Args); in EmitMemberInitializer()
790 unsigned PtrSize = CGM.getDataLayout().getPointerSizeInBits(); in EmitAsanPrologueOrEpilogue()
815 llvm::FunctionType::get(CGM.VoidTy, Args, false); in EmitAsanPrologueOrEpilogue()
816 llvm::FunctionCallee F = CGM.CreateRuntimeFunction( in EmitAsanPrologueOrEpilogue()
845 assert((CGM.getTarget().getCXXABI().hasConstructorVariants() || in EmitConstructorBody()
852 CGM.getTarget().getCXXABI().hasConstructorVariants()) { in EmitConstructorBody()
1054 return Args[CGF.CGM.getCXXABI().getSrcArgforCopyCtor(CD, Args)]; in getTrivialCopySource()
1299 !CGM.getTarget().getCXXABI().hasConstructorVariants()) { in EmitCtorPrologue()
1301 CGM.getCXXABI().EmitCtorCompleteObjectHandler(*this, ClassDecl); in EmitCtorPrologue()
1309 if (CGM.getCodeGenOpts().StrictVTablePointers && in EmitCtorPrologue()
1310 CGM.getCodeGenOpts().OptimizationLevel > 0 && in EmitCtorPrologue()
1326 if (CGM.getCodeGenOpts().StrictVTablePointers && in EmitCtorPrologue()
1327 CGM.getCodeGenOpts().OptimizationLevel > 0 && in EmitCtorPrologue()
1523 if (CGM.getCodeGenOpts().StrictVTablePointers && in EmitDestructorBody()
1524 CGM.getCodeGenOpts().OptimizationLevel > 0) in EmitDestructorBody()
1695 llvm::FunctionCallee Fn = CGF.CGM.CreateRuntimeFunction(FnType, Name);
1888 if (CGM.getCodeGenOpts().SanitizeMemoryUseAfterDtor && in EnterDtorCleanups()
1903 if (CGM.getCodeGenOpts().SanitizeMemoryUseAfterDtor && in EnterDtorCleanups()
1920 if (CGM.getCodeGenOpts().SanitizeMemoryUseAfterDtor && in EnterDtorCleanups()
1934 if (CGM.getCodeGenOpts().SanitizeMemoryUseAfterDtor && in EnterDtorCleanups()
1947 bool SanitizeFields = CGM.getCodeGenOpts().SanitizeMemoryUseAfterDtor && in EnterDtorCleanups()
2186 CGF.CGM.getTypes().arrangeCXXConstructorCall(Args, Ctor, Type, 0, 0); in canEmitDelegateCallArgs()
2243 CGM.getCXXABI().addImplicitConstructorArgs(*this, D, Type, ForVirtualBase, in EmitCXXConstructorCall()
2247 llvm::Constant *CalleePtr = CGM.getAddrOfCXXStructor(GlobalDecl(D, Type)); in EmitCXXConstructorCall()
2248 const CGFunctionInfo &Info = CGM.getTypes().arrangeCXXConstructorCall( in EmitCXXConstructorCall()
2264 if (CGM.getCodeGenOpts().OptimizationLevel > 0 && in EmitCXXConstructorCall()
2266 CGM.getCXXABI().canSpeculativelyEmitVTable(ClassDecl) && in EmitCXXConstructorCall()
2267 CGM.getCodeGenOpts().StrictVTablePointers) in EmitCXXConstructorCall()
2281 CGM.getTarget().getCXXABI().hasConstructorVariants()) { in EmitInheritedCXXConstructorCall()
2336 CGM.getCXXABI().addImplicitConstructorArgs(*this, Ctor, CtorType, in EmitInlinedInheritingCXXConstructorCall()
2358 CGM.getCXXABI().EmitInstanceFunctionProlog(*this); in EmitInlinedInheritingCXXConstructorCall()
2367 CGM.getCXXABI().getVTableAddressPoint(Vptr.Base, Vptr.VTableClass); in EmitVTableAssumptionLoad()
2388 if (CGM.getCXXABI().doStructorsInitializeVPtrs(ClassDecl)) in EmitVTableAssumptionLoads()
2407 llvm::Type *t = CGM.getTypes().ConvertType(QT); in EmitSynthesizedCXXCopyCtorCall()
2441 if (CGM.getCXXABI().NeedsVTTParameter(CurGD)) { in EmitDelegateCXXConstructorCall()
2501 if (CGM.getLangOpts().Exceptions && !ClassDecl->hasTrivialDestructor()) { in EmitDelegatingCXXConstructorCall()
2516 CGM.getCXXABI().EmitDestructorCall(*this, DD, Type, ForVirtualBase, in EmitCXXDestructorCall()
2555 CGM.getCXXABI().getVTableAddressPointInStructor( in InitializeVTablePointer()
2565 if (CGM.getCXXABI().isVirtualOffsetNeededForVTableField(*this, Vptr)) { in InitializeVTablePointer()
2569 VirtualOffset = CGM.getCXXABI().GetVirtualBaseClassOffset( in InitializeVTablePointer()
2586 unsigned GlobalsAS = CGM.getDataLayout().getDefaultGlobalsAddressSpace(); in InitializeVTablePointer()
2587 llvm::Type *PtrTy = llvm::PointerType::get(CGM.getLLVMContext(), GlobalsAS); in InitializeVTablePointer()
2592 if (auto AuthenticationInfo = CGM.getVTablePointerAuthInfo( in InitializeVTablePointer()
2598 TBAAAccessInfo TBAAInfo = CGM.getTBAAVTablePtrAccessInfo(PtrTy); in InitializeVTablePointer()
2599 CGM.DecorateInstructionWithTBAA(Store, TBAAInfo); in InitializeVTablePointer()
2600 if (CGM.getCodeGenOpts().OptimizationLevel > 0 && in InitializeVTablePointer()
2601 CGM.getCodeGenOpts().StrictVTablePointers) in InitializeVTablePointer()
2602 CGM.DecorateInstructionWithInvariantGroup(Store, Vptr.VTableClass); in InitializeVTablePointer()
2680 if (CGM.getCXXABI().doStructorsInitializeVPtrs(RD)) in InitializeVTablePointers()
2685 CGM.getCXXABI().initializeHiddenVirtualInheritanceMembers(*this, RD); in InitializeVTablePointers()
2694 TBAAAccessInfo TBAAInfo = CGM.getTBAAVTablePtrAccessInfo(VTableTy); in GetVTablePtr()
2695 CGM.DecorateInstructionWithTBAA(VTable, TBAAInfo); in GetVTablePtr()
2698 CGM.getVTablePointerAuthInfo(this, RD, This.emitRawPointer(*this))) { in GetVTablePtr()
2708 Builder.CreateLoad(RawAddress(VTable, Int8Ty, CGM.getPointerAlign()), in GetVTablePtr()
2719 if (CGM.getCodeGenOpts().OptimizationLevel > 0 && in GetVTablePtr()
2720 CGM.getCodeGenOpts().StrictVTablePointers) in GetVTablePtr()
2721 CGM.DecorateInstructionWithInvariantGroup(VTable, RD); in GetVTablePtr()
2766 else if (CGM.getCodeGenOpts().WholeProgramVTables && in EmitTypeMetadataCodeForVCall()
2769 !CGM.AlwaysHasLTOVisibilityPublic(RD)) { in EmitTypeMetadataCodeForVCall()
2771 llvm::Metadata *MD = CGM.CreateMetadataIdentifierForType(Ty); in EmitTypeMetadataCodeForVCall()
2773 llvm::MetadataAsValue::get(CGM.getLLVMContext(), MD); in EmitTypeMetadataCodeForVCall()
2779 llvm::Intrinsic::ID IID = CGM.HasHiddenLTOVisibility(RD) in EmitTypeMetadataCodeForVCall()
2783 Builder.CreateCall(CGM.getIntrinsic(IID), {VTable, TypeId}); in EmitTypeMetadataCodeForVCall()
2784 Builder.CreateCall(CGM.getIntrinsic(llvm::Intrinsic::assume), TypeTest); in EmitTypeMetadataCodeForVCall()
2833 CGM.getCXXABI().LoadVTablePtr(*this, Derived, ClassDecl); in EmitVTablePtrCheckForCast()
2847 if (!CGM.getCodeGenOpts().SanitizeCfiCrossDso && in EmitVTablePtrCheck()
2848 !CGM.HasHiddenLTOVisibility(RD)) in EmitVTablePtrCheck()
2884 CGM.CreateMetadataIdentifierForType(QualType(RD->getTypeForDecl(), 0)); in EmitVTablePtrCheck()
2888 CGM.getIntrinsic(llvm::Intrinsic::type_test), {VTable, TypeId}); in EmitVTablePtrCheck()
2896 auto CrossDsoTypeId = CGM.CreateCrossDsoCfiTypeId(MD); in EmitVTablePtrCheck()
2897 if (CGM.getCodeGenOpts().SanitizeCfiCrossDso && CrossDsoTypeId) { in EmitVTablePtrCheck()
2902 if (CGM.getCodeGenOpts().SanitizeTrap.has(M)) { in EmitVTablePtrCheck()
2908 CGM.getLLVMContext(), in EmitVTablePtrCheck()
2909 llvm::MDString::get(CGM.getLLVMContext(), "all-vtables")); in EmitVTablePtrCheck()
2911 CGM.getIntrinsic(llvm::Intrinsic::type_test), {VTable, AllVtables}); in EmitVTablePtrCheck()
2917 if (!CGM.getCodeGenOpts().WholeProgramVTables || in ShouldEmitVTableTypeCheckedLoad()
2918 !CGM.HasHiddenLTOVisibility(RD)) in ShouldEmitVTableTypeCheckedLoad()
2921 if (CGM.getCodeGenOpts().VirtualFunctionElimination) in ShouldEmitVTableTypeCheckedLoad()
2925 !CGM.getCodeGenOpts().SanitizeTrap.has(SanitizerKind::CFIVCall)) in ShouldEmitVTableTypeCheckedLoad()
2941 CGM.CreateMetadataIdentifierForType(QualType(RD->getTypeForDecl(), 0)); in EmitVTableTypeCheckedLoad()
2942 llvm::Value *TypeId = llvm::MetadataAsValue::get(CGM.getLLVMContext(), MD); in EmitVTableTypeCheckedLoad()
2945 CGM.getIntrinsic(llvm::Intrinsic::type_checked_load), in EmitVTableTypeCheckedLoad()
2966 calleeFnInfo = &CGM.getTypes().arrangeCXXMethodDeclaration(callOperator); in EmitForwardingCallToLambda()
2970 CGM.GetAddrOfFunction(GlobalDecl(callOperator), in EmitForwardingCallToLambda()
2971 CGM.getTypes().GetFunctionType(*calleeFnInfo)); in EmitForwardingCallToLambda()
3013 CGM.ErrorUnsupported(CurCodeDecl, "lambda conversion to variadic function"); in EmitLambdaBlockInvokeBody()
3038 CGM.ErrorUnsupported(MD, "lambda conversion to variadic function"); in EmitLambdaStaticInvokeBody()
3093 CGM.ErrorUnsupported(MD, "lambda conversion to variadic function"); in EmitLambdaInAllocaCallOpBody()
3111 CGM.getTypes().arrangeCXXMethodDeclaration(CallOp); in EmitLambdaInAllocaImplFn()
3113 cast<llvm::Function>(CGM.GetAddrOfFunction(GlobalDecl(CallOp))); in EmitLambdaInAllocaImplFn()
3120 *ImplFnInfo = &CGM.getTypes().arrangeLLVMFunctionInfo( in EmitLambdaInAllocaImplFn()
3138 Fn = llvm::Function::Create(CGM.getTypes().GetFunctionType(**ImplFnInfo), in EmitLambdaInAllocaImplFn()
3140 CGM.getModule()); in EmitLambdaInAllocaImplFn()
3141 CGM.SetInternalFunctionAttributes(CallOp, Fn, **ImplFnInfo); in EmitLambdaInAllocaImplFn()
3145 CodeGenFunction(CGM).GenerateCode(GD, Fn, **ImplFnInfo); in EmitLambdaInAllocaImplFn()
3146 CGM.SetLLVMFunctionAttributesForDefinition(D, Fn); in EmitLambdaInAllocaImplFn()