Lines Matching defs:CGM

32 static llvm::Constant *getFreeExceptionFn(CodeGenModule &CGM) {
36 llvm::FunctionType::get(CGM.VoidTy, CGM.Int8PtrTy, /*IsVarArgs=*/false);
38 return CGM.CreateRuntimeFunction(FTy, "__cxa_free_exception");
41 static llvm::Constant *getUnexpectedFn(CodeGenModule &CGM) {
45 llvm::FunctionType::get(CGM.VoidTy, CGM.Int8PtrTy, /*IsVarArgs=*/false);
47 return CGM.CreateRuntimeFunction(FTy, "__cxa_call_unexpected");
76 static llvm::Constant *getCatchallRethrowFn(CodeGenModule &CGM,
79 llvm::FunctionType::get(CGM.VoidTy, CGM.Int8PtrTy, /*IsVarArgs=*/false);
81 return CGM.CreateRuntimeFunction(FTy, Name);
189 const EHPersonality &EHPersonality::get(CodeGenModule &CGM,
191 const llvm::Triple &T = CGM.getTarget().getTriple();
192 const LangOptions &L = CGM.getLangOpts();
219 return get(CGF.CGM, dyn_cast_or_null<FunctionDecl>(CGF.CurCodeDecl));
222 static llvm::Constant *getPersonalityFn(CodeGenModule &CGM,
225 CGM.CreateRuntimeFunction(llvm::FunctionType::get(CGM.Int32Ty, true),
230 static llvm::Constant *getOpaquePersonalityFn(CodeGenModule &CGM,
232 llvm::Constant *Fn = getPersonalityFn(CGM, Personality);
233 return llvm::ConstantExpr::getBitCast(Fn, CGM.Int8PtrTy);
348 CGF.EmitNounwindRuntimeCall(getFreeExceptionFn(CGF.CGM), exn);
410 CGM.getObjCRuntime().EmitThrowStmt(*this, S, false);
412 CGM.getCXXABI().emitThrow(*this, E);
415 CGM.getCXXABI().emitRethrow(*this, /*isNoReturn=*/true);
425 if (!CGM.getLangOpts().CXXExceptions)
458 llvm::Value *EHType = CGM.GetAddrOfRTTIDescriptor(ExceptType,
498 CGF.EmitRuntimeCall(getUnexpectedFn(CGF.CGM), exn)
504 if (!CGM.getLangOpts().CXXExceptions)
558 QualType CaughtType = CGM.getContext().getUnqualifiedArrayType(
563 TypeInfo.RTTI = CGM.getObjCRuntime().GetEHType(CaughtType);
565 TypeInfo = CGM.getCXXABI().getAddrOfCXXCatchHandlerType(
570 CatchScope->setHandler(I, CGM.getCXXABI().getCatchAllTypeInfo(), Handler);
691 const LangOptions &LO = CGM.getLangOpts();
707 CurFn->setPersonalityFn(getOpaquePersonalityFn(CGM, Personality));
937 CGF.CGM.getIntrinsic(llvm::Intrinsic::eh_typeid_for);
1058 CGM.getCXXABI().emitBeginCatch(*this, C);
1076 CGM.getCXXABI().emitRethrow(*this, /*isNoReturn*/false);
1298 CurFn->setPersonalityFn(getOpaquePersonalityFn(CGM, Personality));
1308 CGM.getCXXABI().emitTerminateForUnexpectedException(*this, Exn);
1332 ParentPad = llvm::ConstantTokenNone::get(CGM.getLLVMContext());
1339 CGM.getCXXABI().emitTerminateForUnexpectedException(*this, Exn);
1364 EmitRuntimeCall(getCatchallRethrowFn(CGM, RethrowName),
1411 CodeGenModule &CGM = CGF.CGM;
1417 llvm::Value *LocalAddrFn = CGM.getIntrinsic(llvm::Intrinsic::localaddress);
1429 CGM.getTypes().arrangeFreeFunctionCall(Args, FPT,
1509 &CGM.getModule(), llvm::Intrinsic::localrecover);
1546 CGM.getTarget().getTriple().getArch() != llvm::Triple::x86) {
1553 CGBuilderTy Builder(CGM, AllocaInsertPt);
1554 if (IsFilter && CGM.getTarget().getTriple().getArch() == llvm::Triple::x86) {
1559 CGM.getIntrinsic(llvm::Intrinsic::frameaddress), {Builder.getInt32(1)});
1574 CGM.getIntrinsic(llvm::Intrinsic::x86_seh_recoverfp);
1583 CGM.ErrorUnsupported(VD, "'this' captured by SEH");
1588 CGM.ErrorUnsupported(VD, "VLA captured by SEH");
1629 MangleContext &Mangler = CGM.getCXXABI().getMangleContext();
1637 if (CGM.getTarget().getTriple().getArch() != llvm::Triple::x86 || !IsFilter) {
1659 const CGFunctionInfo &FnInfo = CGM.getTypes().arrangeFreeFunctionDeclaration(
1662 llvm::FunctionType *FnTy = CGM.getTypes().GetFunctionType(FnInfo);
1664 FnTy, llvm::GlobalValue::InternalLinkage, Name.str(), &CGM.getModule());
1669 llvm::Comdat *C = CGM.getModule().getOrInsertComdat(ParentFn->getName());
1681 CGM.SetLLVMFunctionAttributes(nullptr, FnInfo, CurFn);
1730 if (CGM.getTarget().getTriple().getArch() != llvm::Triple::x86) {
1754 llvm::Type *RecordTy = CGM.Int32Ty->getPointerTo();
1755 llvm::Type *PtrsTy = llvm::StructType::get(RecordTy, CGM.VoidPtrTy, nullptr);
1786 CodeGenFunction HelperCGF(CGM, /*suppressNewContext=*/true);
1808 CGM.EmitConstantExpr(Except->getFilterExpr(), getContext().IntTy, this);
1809 if (CGM.getTarget().getTriple().getArch() != llvm::Triple::x86 && C &&
1871 if (CGM.getTarget().getTriple().getArch() != llvm::Triple::x86) {
1873 CGM.getIntrinsic(llvm::Intrinsic::eh_exceptioncode);