Lines Matching refs:CGF

38 tryEmitARCRetainScalarExpr(CodeGenFunction &CGF, const Expr *e);
39 static RValue AdjustObjCObjectType(CodeGenFunction &CGF,
273 static RValue AdjustObjCObjectType(CodeGenFunction &CGF, QualType ExpT, in AdjustObjCObjectType() argument
279 llvm::Type *ExpLLVMTy = CGF.ConvertType(ExpT); in AdjustObjCObjectType()
284 return RValue::get(CGF.Builder.CreateBitCast(Result.getScalarVal(), in AdjustObjCObjectType()
378 CodeGenFunction &CGF, QualType ResultType, llvm::Value *Receiver, in tryGenerateSpecializedMessageSend() argument
381 auto &CGM = CGF.CGM; in tryGenerateSpecializedMessageSend()
394 return CGF.EmitObjCAlloc(Receiver, CGF.ConvertType(ResultType)); in tryGenerateSpecializedMessageSend()
402 return CGF.EmitObjCAllocWithZone(Receiver, in tryGenerateSpecializedMessageSend()
403 CGF.ConvertType(ResultType)); in tryGenerateSpecializedMessageSend()
413 return CGF.EmitObjCAutorelease(Receiver, CGF.ConvertType(ResultType)); in tryGenerateSpecializedMessageSend()
420 return CGF.EmitObjCRetainNonBlock(Receiver, CGF.ConvertType(ResultType)); in tryGenerateSpecializedMessageSend()
427 CGF.EmitObjCRelease(Receiver, ARCPreciseLifetime); in tryGenerateSpecializedMessageSend()
439 CodeGenFunction &CGF, ReturnValueSlot Return, QualType ResultType, in GeneratePossiblySpecializedMessageSend() argument
444 tryGenerateSpecializedMessageSend(CGF, ResultType, Receiver, Args, in GeneratePossiblySpecializedMessageSend()
448 return GenerateMessageSend(CGF, Return, ResultType, Sel, Receiver, Args, OID, in GeneratePossiblySpecializedMessageSend()
525 tryEmitSpecializedAllocInit(CodeGenFunction &CGF, const ObjCMessageExpr *OME) { in tryEmitSpecializedAllocInit() argument
526 auto &Runtime = CGF.getLangOpts().ObjCRuntime; in tryEmitSpecializedAllocInit()
554 Receiver = CGF.EmitScalarExpr(SubOME->getInstanceReceiver()); in tryEmitSpecializedAllocInit()
562 Receiver = CGF.CGM.getObjCRuntime().GetClass(CGF, ID); in tryEmitSpecializedAllocInit()
570 return CGF.EmitObjCAllocInit(Receiver, CGF.ConvertType(OME->getType())); in tryEmitSpecializedAllocInit()
723 void Emit(CodeGenFunction &CGF, Flags flags) override { in Emit()
724 const ObjCMethodDecl *method = cast<ObjCMethodDecl>(CGF.CurCodeDecl); in Emit()
733 llvm::Value *self = CGF.LoadObjCSelf(); in Emit()
736 CGF.CGM.getObjCRuntime().GenerateMessageSendSuper(CGF, ReturnValueSlot(), in Emit()
737 CGF.getContext().VoidTy, in Emit()
802 static llvm::Value *emitARCRetainLoadOfScalar(CodeGenFunction &CGF,
818 static void emitStructGetterCall(CodeGenFunction &CGF, ObjCIvarDecl *ivar, in emitStructGetterCall() argument
820 ASTContext &Context = CGF.getContext(); in emitStructGetterCall()
823 CGF.EmitLValueForIvar(CGF.TypeOfSelfObject(), CGF.LoadObjCSelf(), ivar, 0) in emitStructGetterCall()
824 .getPointer(CGF); in emitStructGetterCall()
831 CGF.Builder.CreateBitCast(CGF.ReturnValue.getPointer(), CGF.VoidPtrTy); in emitStructGetterCall()
834 src = CGF.Builder.CreateBitCast(src, CGF.VoidPtrTy); in emitStructGetterCall()
837 CharUnits size = CGF.getContext().getTypeSizeInChars(ivar->getType()); in emitStructGetterCall()
838 args.add(RValue::get(CGF.CGM.getSize(size)), Context.getSizeType()); in emitStructGetterCall()
839 args.add(RValue::get(CGF.Builder.getInt1(isAtomic)), Context.BoolTy); in emitStructGetterCall()
840 args.add(RValue::get(CGF.Builder.getInt1(hasStrong)), Context.BoolTy); in emitStructGetterCall()
842 llvm::FunctionCallee fn = CGF.CGM.getObjCRuntime().GetGetStructFunction(); in emitStructGetterCall()
844 CGF.EmitCall(CGF.getTypes().arrangeBuiltinFunctionCall(Context.VoidTy, args), in emitStructGetterCall()
1086 static void emitCPPObjectAtomicGetterCall(CodeGenFunction &CGF, in emitCPPObjectAtomicGetterCall() argument
1095 args.add(RValue::get(returnAddr), CGF.getContext().VoidPtrTy); in emitCPPObjectAtomicGetterCall()
1099 CGF.EmitLValueForIvar(CGF.TypeOfSelfObject(), CGF.LoadObjCSelf(), ivar, 0) in emitCPPObjectAtomicGetterCall()
1100 .getPointer(CGF); in emitCPPObjectAtomicGetterCall()
1101 ivarAddr = CGF.Builder.CreateBitCast(ivarAddr, CGF.Int8PtrTy); in emitCPPObjectAtomicGetterCall()
1102 args.add(RValue::get(ivarAddr), CGF.getContext().VoidPtrTy); in emitCPPObjectAtomicGetterCall()
1105 args.add(RValue::get(AtomicHelperFn), CGF.getContext().VoidPtrTy); in emitCPPObjectAtomicGetterCall()
1108 CGF.CGM.getObjCRuntime().GetCppAtomicObjectGetFunction(); in emitCPPObjectAtomicGetterCall()
1110 CGF.EmitCall( in emitCPPObjectAtomicGetterCall()
1111 CGF.getTypes().arrangeBuiltinFunctionCall(CGF.getContext().VoidTy, args), in emitCPPObjectAtomicGetterCall()
1121 static llvm::Value *emitCmdValueForGetterSetterBody(CodeGenFunction &CGF, in emitCmdValueForGetterSetterBody() argument
1127 llvm::Type *selType = CGF.ConvertType(CGF.getContext().getObjCSelType()); in emitCmdValueForGetterSetterBody()
1131 return CGF.Builder.CreateLoad(CGF.GetAddrOfLocalVar(MD->getCmdDecl()), "cmd"); in emitCmdValueForGetterSetterBody()
1325 static void emitStructSetterCall(CodeGenFunction &CGF, ObjCMethodDecl *OMD, in emitStructSetterCall() argument
1333 CGF.EmitLValueForIvar(CGF.TypeOfSelfObject(), CGF.LoadObjCSelf(), ivar, 0) in emitStructSetterCall()
1334 .getPointer(CGF); in emitStructSetterCall()
1335 ivarAddr = CGF.Builder.CreateBitCast(ivarAddr, CGF.Int8PtrTy); in emitStructSetterCall()
1336 args.add(RValue::get(ivarAddr), CGF.getContext().VoidPtrTy); in emitStructSetterCall()
1340 DeclRefExpr argRef(CGF.getContext(), argVar, false, in emitStructSetterCall()
1343 llvm::Value *argAddr = CGF.EmitLValue(&argRef).getPointer(CGF); in emitStructSetterCall()
1344 argAddr = CGF.Builder.CreateBitCast(argAddr, CGF.Int8PtrTy); in emitStructSetterCall()
1345 args.add(RValue::get(argAddr), CGF.getContext().VoidPtrTy); in emitStructSetterCall()
1349 CGF.CGM.getSize(CGF.getContext().getTypeSizeInChars(ivar->getType())); in emitStructSetterCall()
1350 args.add(RValue::get(size), CGF.getContext().getSizeType()); in emitStructSetterCall()
1353 args.add(RValue::get(CGF.Builder.getTrue()), CGF.getContext().BoolTy); in emitStructSetterCall()
1357 args.add(RValue::get(CGF.Builder.getFalse()), CGF.getContext().BoolTy); in emitStructSetterCall()
1359 llvm::FunctionCallee fn = CGF.CGM.getObjCRuntime().GetSetStructFunction(); in emitStructSetterCall()
1361 CGF.EmitCall( in emitStructSetterCall()
1362 CGF.getTypes().arrangeBuiltinFunctionCall(CGF.getContext().VoidTy, args), in emitStructSetterCall()
1369 static void emitCPPObjectAtomicSetterCall(CodeGenFunction &CGF, in emitCPPObjectAtomicSetterCall() argument
1379 CGF.EmitLValueForIvar(CGF.TypeOfSelfObject(), CGF.LoadObjCSelf(), ivar, 0) in emitCPPObjectAtomicSetterCall()
1380 .getPointer(CGF); in emitCPPObjectAtomicSetterCall()
1381 ivarAddr = CGF.Builder.CreateBitCast(ivarAddr, CGF.Int8PtrTy); in emitCPPObjectAtomicSetterCall()
1382 args.add(RValue::get(ivarAddr), CGF.getContext().VoidPtrTy); in emitCPPObjectAtomicSetterCall()
1386 DeclRefExpr argRef(CGF.getContext(), argVar, false, in emitCPPObjectAtomicSetterCall()
1389 llvm::Value *argAddr = CGF.EmitLValue(&argRef).getPointer(CGF); in emitCPPObjectAtomicSetterCall()
1390 argAddr = CGF.Builder.CreateBitCast(argAddr, CGF.Int8PtrTy); in emitCPPObjectAtomicSetterCall()
1391 args.add(RValue::get(argAddr), CGF.getContext().VoidPtrTy); in emitCPPObjectAtomicSetterCall()
1394 args.add(RValue::get(AtomicHelperFn), CGF.getContext().VoidPtrTy); in emitCPPObjectAtomicSetterCall()
1397 CGF.CGM.getObjCRuntime().GetCppAtomicObjectSetFunction(); in emitCPPObjectAtomicSetterCall()
1399 CGF.EmitCall( in emitCPPObjectAtomicSetterCall()
1400 CGF.getTypes().arrangeBuiltinFunctionCall(CGF.getContext().VoidTy, args), in emitCPPObjectAtomicSetterCall()
1661 void Emit(CodeGenFunction &CGF, Flags flags) override { in Emit()
1663 = CGF.EmitLValueForIvar(CGF.TypeOfSelfObject(), addr, ivar, /*CVR*/ 0); in Emit()
1664 CGF.emitDestroy(lvalue.getAddress(CGF), ivar->getType(), destroyer, in Emit()
1671 static void destroyARCStrongWithStore(CodeGenFunction &CGF, in destroyARCStrongWithStore() argument
1675 CGF.EmitARCStoreStrongCall(addr, null, /*ignored*/ true); in destroyARCStrongWithStore()
1678 static void emitCXXDestructMethod(CodeGenFunction &CGF, in emitCXXDestructMethod() argument
1680 CodeGenFunction::RunCleanupsScope scope(CGF); in emitCXXDestructMethod()
1682 llvm::Value *self = CGF.LoadObjCSelf(); in emitCXXDestructMethod()
1702 destroyer = CGF.getDestroyer(dtorKind); in emitCXXDestructMethod()
1705 CleanupKind cleanupKind = CGF.getCleanupKind(dtorKind); in emitCXXDestructMethod()
1707 CGF.EHStack.pushCleanup<DestroyIvar>(cleanupKind, self, ivar, destroyer, in emitCXXDestructMethod()
2108 void Emit(CodeGenFunction &CGF, Flags flags) override { in Emit()
2110 CGF.EmitARCRelease(object, ARCImpreciseLifetime); in Emit()
2179 CodeGenFunction &CGF, llvm::Value *value, llvm::Type *returnType, in emitARCValueOperation() argument
2186 fn = getARCIntrinsic(IntID, CGF.CGM); in emitARCValueOperation()
2190 value = CGF.Builder.CreateBitCast(value, CGF.Int8PtrTy); in emitARCValueOperation()
2193 llvm::CallInst *call = CGF.EmitNounwindRuntimeCall(fn, value); in emitARCValueOperation()
2197 return CGF.Builder.CreateBitCast(call, origType); in emitARCValueOperation()
2202 static llvm::Value *emitARCLoadOperation(CodeGenFunction &CGF, Address addr, in emitARCLoadOperation() argument
2206 fn = getARCIntrinsic(IntID, CGF.CGM); in emitARCLoadOperation()
2210 addr = CGF.Builder.CreateElementBitCast(addr, CGF.Int8PtrTy); in emitARCLoadOperation()
2213 llvm::Value *result = CGF.EmitNounwindRuntimeCall(fn, addr.getPointer()); in emitARCLoadOperation()
2216 if (origType != CGF.Int8PtrTy) in emitARCLoadOperation()
2217 result = CGF.Builder.CreateBitCast(result, origType); in emitARCLoadOperation()
2224 static llvm::Value *emitARCStoreOperation(CodeGenFunction &CGF, Address addr, in emitARCStoreOperation() argument
2232 fn = getARCIntrinsic(IntID, CGF.CGM); in emitARCStoreOperation()
2237 CGF.Builder.CreateBitCast(addr.getPointer(), CGF.Int8PtrPtrTy), in emitARCStoreOperation()
2238 CGF.Builder.CreateBitCast(value, CGF.Int8PtrTy) in emitARCStoreOperation()
2240 llvm::CallInst *result = CGF.EmitNounwindRuntimeCall(fn, args); in emitARCStoreOperation()
2244 return CGF.Builder.CreateBitCast(result, origType); in emitARCStoreOperation()
2249 static void emitARCCopyOperation(CodeGenFunction &CGF, Address dst, Address src, in emitARCCopyOperation() argument
2255 fn = getARCIntrinsic(IntID, CGF.CGM); in emitARCCopyOperation()
2258 CGF.Builder.CreateBitCast(dst.getPointer(), CGF.Int8PtrPtrTy), in emitARCCopyOperation()
2259 CGF.Builder.CreateBitCast(src.getPointer(), CGF.Int8PtrPtrTy) in emitARCCopyOperation()
2261 CGF.EmitNounwindRuntimeCall(fn, args); in emitARCCopyOperation()
2267 static llvm::Value *emitObjCValueOperation(CodeGenFunction &CGF, in emitObjCValueOperation() argument
2277 llvm::FunctionType::get(CGF.Int8PtrTy, CGF.Int8PtrTy, false); in emitObjCValueOperation()
2278 fn = CGF.CGM.CreateRuntimeFunction(fnType, fnName); in emitObjCValueOperation()
2288 value = CGF.Builder.CreateBitCast(value, CGF.Int8PtrTy); in emitObjCValueOperation()
2291 llvm::CallBase *Inst = CGF.EmitCallOrInvoke(fn, value); in emitObjCValueOperation()
2300 return CGF.Builder.CreateBitCast(Inst, origType); in emitObjCValueOperation()
2351 static void emitAutoreleasedReturnValueMarker(CodeGenFunction &CGF) { in emitAutoreleasedReturnValueMarker() argument
2355 = CGF.CGM.getObjCEntrypoints().retainAutoreleasedReturnValueMarker; in emitAutoreleasedReturnValueMarker()
2358 = CGF.CGM.getTargetCodeGenInfo() in emitAutoreleasedReturnValueMarker()
2366 } else if (CGF.CGM.getCodeGenOpts().OptimizationLevel == 0) { in emitAutoreleasedReturnValueMarker()
2368 llvm::FunctionType::get(CGF.VoidTy, /*variadic*/false); in emitAutoreleasedReturnValueMarker()
2377 if (!CGF.CGM.getModule().getModuleFlag(retainRVMarkerKey)) { in emitAutoreleasedReturnValueMarker()
2378 auto *str = llvm::MDString::get(CGF.getLLVMContext(), assembly); in emitAutoreleasedReturnValueMarker()
2379 CGF.CGM.getModule().addModuleFlag(llvm::Module::Error, in emitAutoreleasedReturnValueMarker()
2387 CGF.Builder.CreateCall(marker, std::nullopt, in emitAutoreleasedReturnValueMarker()
2388 CGF.getBundlesForFunclet(marker)); in emitAutoreleasedReturnValueMarker()
2393 CodeGenFunction &CGF) { in emitOptimizedARCReturnCall() argument
2394 emitAutoreleasedReturnValueMarker(CGF); in emitOptimizedARCReturnCall()
2400 ObjCEntrypoints &EPs = CGF.CGM.getObjCEntrypoints(); in emitOptimizedARCReturnCall()
2407 EP = getARCIntrinsic(IID, CGF.CGM); in emitOptimizedARCReturnCall()
2409 llvm::Triple::ArchType Arch = CGF.CGM.getTriple().getArch(); in emitOptimizedARCReturnCall()
2413 if (CGF.CGM.getCodeGenOpts().OptimizationLevel > 0 && in emitOptimizedARCReturnCall()
2423 CGF.EmitARCNoopIntrinsicUse(newCall); in emitOptimizedARCReturnCall()
2428 CGF.CGM.getTargetCodeGenInfo().markARCOptimizedReturnCallsAsNoTail(); in emitOptimizedARCReturnCall()
2431 return emitARCValueOperation(CGF, value, nullptr, EP, IID, tailKind); in emitOptimizedARCReturnCall()
2803 void CodeGenFunction::destroyARCStrongPrecise(CodeGenFunction &CGF, in destroyARCStrongPrecise() argument
2806 CGF.EmitARCDestroyStrong(addr, ARCPreciseLifetime); in destroyARCStrongPrecise()
2809 void CodeGenFunction::destroyARCStrongImprecise(CodeGenFunction &CGF, in destroyARCStrongImprecise() argument
2812 CGF.EmitARCDestroyStrong(addr, ARCImpreciseLifetime); in destroyARCStrongImprecise()
2815 void CodeGenFunction::destroyARCWeak(CodeGenFunction &CGF, in destroyARCWeak() argument
2818 CGF.EmitARCDestroyWeak(addr); in destroyARCWeak()
2821 void CodeGenFunction::emitARCIntrinsicUse(CodeGenFunction &CGF, Address addr, in emitARCIntrinsicUse() argument
2823 llvm::Value *value = CGF.Builder.CreateLoad(addr); in emitARCIntrinsicUse()
2824 CGF.EmitARCIntrinsicUse(value); in emitARCIntrinsicUse()
2882 void Emit(CodeGenFunction &CGF, Flags flags) override { in Emit()
2883 CGF.EmitObjCAutoreleasePoolPop(Token); in Emit()
2891 void Emit(CodeGenFunction &CGF, Flags flags) override { in Emit()
2892 CGF.EmitObjCMRRAutoreleasePoolPop(Token); in Emit()
2919 static TryEmitResult tryEmitARCRetainLoadOfScalar(CodeGenFunction &CGF, in tryEmitARCRetainLoadOfScalar() argument
2925 result = CGF.EmitLoadOfLValue(lvalue, SourceLocation()).getScalarVal(); in tryEmitARCRetainLoadOfScalar()
2928 result = CGF.EmitARCLoadWeakRetained(lvalue.getAddress(CGF)); in tryEmitARCRetainLoadOfScalar()
2933 static TryEmitResult tryEmitARCRetainLoadOfScalar(CodeGenFunction &CGF, in tryEmitARCRetainLoadOfScalar() argument
2945 LValue lv = CGF.EmitLValue(e); in tryEmitARCRetainLoadOfScalar()
2948 llvm::Value *result = CGF.EmitLoadOfLValue(lv, in tryEmitARCRetainLoadOfScalar()
2952 CGF.EmitStoreOfScalar(getNullForVariable(lv.getAddress(CGF)), lv); in tryEmitARCRetainLoadOfScalar()
2960 if (CGF.getLangOpts().CPlusPlus && in tryEmitARCRetainLoadOfScalar()
2965 return TryEmitResult(CGF.EmitScalarExpr(e), false); in tryEmitARCRetainLoadOfScalar()
2972 if (CodeGenFunction::ConstantEmission constant = CGF.tryEmitAsConstant(DRE)) in tryEmitARCRetainLoadOfScalar()
2973 return TryEmitResult(CGF.emitScalarConstant(constant, DRE), in tryEmitARCRetainLoadOfScalar()
2977 return tryEmitARCRetainLoadOfScalar(CGF, CGF.EmitLValue(e), type); in tryEmitARCRetainLoadOfScalar()
2980 typedef llvm::function_ref<llvm::Value *(CodeGenFunction &CGF,
2988 static llvm::Value *emitARCOperationAfterCall(CodeGenFunction &CGF, in emitARCOperationAfterCall() argument
2992 CGBuilderTy::InsertPoint ip = CGF.Builder.saveIP(); in emitARCOperationAfterCall()
2997 value = doFallback(CGF, value); in emitARCOperationAfterCall()
3000 CGF.Builder.SetInsertPoint(call->getParent(), in emitARCOperationAfterCall()
3002 value = doAfterCall(CGF, value); in emitARCOperationAfterCall()
3006 CGF.Builder.SetInsertPoint(BB, BB->begin()); in emitARCOperationAfterCall()
3007 value = doAfterCall(CGF, value); in emitARCOperationAfterCall()
3014 CGF.Builder.SetInsertPoint(bitcast->getParent(), bitcast->getIterator()); in emitARCOperationAfterCall()
3016 operand = emitARCOperationAfterCall(CGF, operand, doAfterCall, doFallback); in emitARCOperationAfterCall()
3027 inVal = emitARCOperationAfterCall(CGF, inVal, doAfterCall, doFallback); in emitARCOperationAfterCall()
3034 value = doFallback(CGF, value); in emitARCOperationAfterCall()
3038 CGF.Builder.restoreIP(ip); in emitARCOperationAfterCall()
3044 static llvm::Value *emitARCRetainCallResult(CodeGenFunction &CGF, in emitARCRetainCallResult() argument
3046 llvm::Value *value = CGF.EmitScalarExpr(e); in emitARCRetainCallResult()
3047 return emitARCOperationAfterCall(CGF, value, in emitARCRetainCallResult()
3048 [](CodeGenFunction &CGF, llvm::Value *value) { in emitARCRetainCallResult() argument
3049 return CGF.EmitARCRetainAutoreleasedReturnValue(value); in emitARCRetainCallResult()
3051 [](CodeGenFunction &CGF, llvm::Value *value) { in emitARCRetainCallResult() argument
3052 return CGF.EmitARCRetainNonBlock(value); in emitARCRetainCallResult()
3058 static llvm::Value *emitARCUnsafeClaimCallResult(CodeGenFunction &CGF, in emitARCUnsafeClaimCallResult() argument
3060 llvm::Value *value = CGF.EmitScalarExpr(e); in emitARCUnsafeClaimCallResult()
3061 return emitARCOperationAfterCall(CGF, value, in emitARCUnsafeClaimCallResult()
3062 [](CodeGenFunction &CGF, llvm::Value *value) { in emitARCUnsafeClaimCallResult() argument
3063 return CGF.EmitARCUnsafeClaimAutoreleasedReturnValue(value); in emitARCUnsafeClaimCallResult()
3065 [](CodeGenFunction &CGF, llvm::Value *value) { in emitARCUnsafeClaimCallResult() argument
3122 CodeGenFunction &CGF; member in __anonb505f9fd0a11::ARCExprEmitter
3125 ARCExprEmitter(CodeGenFunction &CGF) : CGF(CGF) {} in ARCExprEmitter() argument
3180 opaqueData = OVMA::bind(CGF, ov, in visitPseudoObjectExpr()
3185 opaqueData = OVMA::bind(CGF, ov, ov->getSourceExpr()); in visitPseudoObjectExpr()
3196 CGF.EmitIgnoredExpr(semantic); in visitPseudoObjectExpr()
3202 opaques[i].unbind(CGF); in visitPseudoObjectExpr()
3226 llvm::Type *resultType = CGF.ConvertType(e->getType()); in visitCastExpr()
3253 CGF.EmitIgnoredExpr(e->getLHS()); in visitBinaryOperator()
3254 CGF.EnsureInsertPoint(); in visitBinaryOperator()
3297 CGF.EmitCheckedLValue(e->getLHS(), CodeGenFunction::TCK_Store); in visitBinAssignUnsafeUnretained()
3298 CGF.EmitStoreThroughLValue(RValue::get(asImpl().getValueOfResult(result)), in visitBinAssignUnsafeUnretained()
3368 ARCRetainExprEmitter(CodeGenFunction &CGF) : ARCExprEmitter(CGF) {} in ARCRetainExprEmitter()
3376 value = CGF.Builder.CreateBitCast(value, resultType); in emitBitCast()
3382 return tryEmitARCRetainLoadOfScalar(CGF, e); in visitLValueToRValue()
3388 llvm::Value *result = CGF.EmitScalarExpr(e); in visitConsumeObject()
3396 if (CGF.CGM.getCodeGenOpts().ObjCAvoidHeapifyLocalBlocks && in visitBlockExpr()
3411 result = CGF.EmitScalarExpr(e); in visitExtendBlockObject()
3427 result = CGF.EmitARCRetainBlock(result, /*mandatory*/ true); in visitExtendBlockObject()
3434 llvm::Value *result = emitARCRetainCallResult(CGF, e); in visitReclaimReturnedObject()
3440 llvm::Value *result = emitARCRetainCallResult(CGF, e); in visitCall()
3449 llvm::Value *result = CGF.EmitScalarExpr(e); in visitExpr()
3456 tryEmitARCRetainScalarExpr(CodeGenFunction &CGF, const Expr *e) { in tryEmitARCRetainScalarExpr() argument
3457 return ARCRetainExprEmitter(CGF).visit(e); in tryEmitARCRetainScalarExpr()
3460 static llvm::Value *emitARCRetainLoadOfScalar(CodeGenFunction &CGF, in emitARCRetainLoadOfScalar() argument
3463 TryEmitResult result = tryEmitARCRetainLoadOfScalar(CGF, lvalue, type); in emitARCRetainLoadOfScalar()
3466 value = CGF.EmitARCRetain(type, value); in emitARCRetainLoadOfScalar()
3545 ARCUnsafeUnretainedExprEmitter(CodeGenFunction &CGF) : ARCExprEmitter(CGF) {} in ARCUnsafeUnretainedExprEmitter()
3552 return CGF.Builder.CreateBitCast(value, resultType); in emitBitCast()
3556 return CGF.EmitScalarExpr(e); in visitLValueToRValue()
3562 llvm::Value *value = CGF.EmitScalarExpr(e); in visitConsumeObject()
3563 return CGF.EmitObjCConsumeObject(e->getType(), value); in visitConsumeObject()
3569 return CGF.EmitARCExtendBlockObject(e); in visitExtendBlockObject()
3574 return CGF.EmitARCReclaimReturnedObject(e, /*unsafe*/ true); in visitReclaimReturnedObject()
3580 return CGF.EmitScalarExpr(e); in visitCall()
3585 return CGF.EmitScalarExpr(e); in visitExpr()
3590 static llvm::Value *emitARCUnsafeUnretainedScalarExpr(CodeGenFunction &CGF, in emitARCUnsafeUnretainedScalarExpr() argument
3592 return ARCUnsafeUnretainedExprEmitter(CGF).visit(e); in emitARCUnsafeUnretainedScalarExpr()
3977 static llvm::Value *emitIsPlatformVersionAtLeast(CodeGenFunction &CGF, in emitIsPlatformVersionAtLeast() argument
3979 CodeGenModule &CGM = CGF.CGM; in emitIsPlatformVersionAtLeast()
4007 CGF.EmitNounwindRuntimeCall(CGM.IsPlatformVersionAtLeastFn, Args); in emitIsPlatformVersionAtLeast()
4008 return CGF.Builder.CreateICmpNE(Check, in emitIsPlatformVersionAtLeast()
4097 CodeGenFunction CGF(*this); in emitAtAvailableLinkGuard() local
4098 CGF.Builder.SetInsertPoint(CGF.createBasicBlock("", CFLinkCheckFunc)); in emitAtAvailableLinkGuard()
4099 CGF.EmitNounwindRuntimeCall(CFFunc, in emitAtAvailableLinkGuard()
4101 CGF.Builder.CreateUnreachable(); in emitAtAvailableLinkGuard()