Lines Matching refs:CGF
35 tryEmitARCRetainScalarExpr(CodeGenFunction &CGF, const Expr *e);
36 static RValue AdjustObjCObjectType(CodeGenFunction &CGF,
270 static RValue AdjustObjCObjectType(CodeGenFunction &CGF, QualType ExpT, in AdjustObjCObjectType() argument
276 llvm::Type *ExpLLVMTy = CGF.ConvertType(ExpT); in AdjustObjCObjectType()
281 return RValue::get(CGF.Builder.CreateBitCast(Result.getScalarVal(), in AdjustObjCObjectType()
375 tryGenerateSpecializedMessageSend(CodeGenFunction &CGF, QualType ResultType, in tryGenerateSpecializedMessageSend() argument
380 auto &CGM = CGF.CGM; in tryGenerateSpecializedMessageSend()
393 return CGF.EmitObjCAlloc(Receiver, CGF.ConvertType(ResultType)); in tryGenerateSpecializedMessageSend()
401 return CGF.EmitObjCAllocWithZone(Receiver, in tryGenerateSpecializedMessageSend()
402 CGF.ConvertType(ResultType)); in tryGenerateSpecializedMessageSend()
412 return CGF.EmitObjCAutorelease(Receiver, CGF.ConvertType(ResultType)); in tryGenerateSpecializedMessageSend()
419 return CGF.EmitObjCRetainNonBlock(Receiver, CGF.ConvertType(ResultType)); in tryGenerateSpecializedMessageSend()
426 CGF.EmitObjCRelease(Receiver, ARCPreciseLifetime); in tryGenerateSpecializedMessageSend()
438 CodeGenFunction &CGF, ReturnValueSlot Return, QualType ResultType, in GeneratePossiblySpecializedMessageSend() argument
443 tryGenerateSpecializedMessageSend(CGF, ResultType, Receiver, Args, in GeneratePossiblySpecializedMessageSend()
447 return GenerateMessageSend(CGF, Return, ResultType, Sel, Receiver, Args, OID, in GeneratePossiblySpecializedMessageSend()
524 tryEmitSpecializedAllocInit(CodeGenFunction &CGF, const ObjCMessageExpr *OME) { in tryEmitSpecializedAllocInit() argument
525 auto &Runtime = CGF.getLangOpts().ObjCRuntime; in tryEmitSpecializedAllocInit()
553 Receiver = CGF.EmitScalarExpr(SubOME->getInstanceReceiver()); in tryEmitSpecializedAllocInit()
561 Receiver = CGF.CGM.getObjCRuntime().GetClass(CGF, ID); in tryEmitSpecializedAllocInit()
569 return CGF.EmitObjCAllocInit(Receiver, CGF.ConvertType(OME->getType())); in tryEmitSpecializedAllocInit()
722 void Emit(CodeGenFunction &CGF, Flags flags) override { in Emit()
723 const ObjCMethodDecl *method = cast<ObjCMethodDecl>(CGF.CurCodeDecl); in Emit()
732 llvm::Value *self = CGF.LoadObjCSelf(); in Emit()
735 CGF.CGM.getObjCRuntime().GenerateMessageSendSuper(CGF, ReturnValueSlot(), in Emit()
736 CGF.getContext().VoidTy, in Emit()
800 static llvm::Value *emitARCRetainLoadOfScalar(CodeGenFunction &CGF,
816 static void emitStructGetterCall(CodeGenFunction &CGF, ObjCIvarDecl *ivar, in emitStructGetterCall() argument
818 ASTContext &Context = CGF.getContext(); in emitStructGetterCall()
821 CGF.EmitLValueForIvar(CGF.TypeOfSelfObject(), CGF.LoadObjCSelf(), ivar, 0) in emitStructGetterCall()
822 .getPointer(CGF); in emitStructGetterCall()
829 CGF.Builder.CreateBitCast(CGF.ReturnValue.getPointer(), CGF.VoidPtrTy); in emitStructGetterCall()
832 src = CGF.Builder.CreateBitCast(src, CGF.VoidPtrTy); in emitStructGetterCall()
835 CharUnits size = CGF.getContext().getTypeSizeInChars(ivar->getType()); in emitStructGetterCall()
836 args.add(RValue::get(CGF.CGM.getSize(size)), Context.getSizeType()); in emitStructGetterCall()
837 args.add(RValue::get(CGF.Builder.getInt1(isAtomic)), Context.BoolTy); in emitStructGetterCall()
838 args.add(RValue::get(CGF.Builder.getInt1(hasStrong)), Context.BoolTy); in emitStructGetterCall()
840 llvm::FunctionCallee fn = CGF.CGM.getObjCRuntime().GetGetStructFunction(); in emitStructGetterCall()
842 CGF.EmitCall(CGF.getTypes().arrangeBuiltinFunctionCall(Context.VoidTy, args), in emitStructGetterCall()
1084 static void emitCPPObjectAtomicGetterCall(CodeGenFunction &CGF, in emitCPPObjectAtomicGetterCall() argument
1093 args.add(RValue::get(returnAddr), CGF.getContext().VoidPtrTy); in emitCPPObjectAtomicGetterCall()
1097 CGF.EmitLValueForIvar(CGF.TypeOfSelfObject(), CGF.LoadObjCSelf(), ivar, 0) in emitCPPObjectAtomicGetterCall()
1098 .getPointer(CGF); in emitCPPObjectAtomicGetterCall()
1099 ivarAddr = CGF.Builder.CreateBitCast(ivarAddr, CGF.Int8PtrTy); in emitCPPObjectAtomicGetterCall()
1100 args.add(RValue::get(ivarAddr), CGF.getContext().VoidPtrTy); in emitCPPObjectAtomicGetterCall()
1103 args.add(RValue::get(AtomicHelperFn), CGF.getContext().VoidPtrTy); in emitCPPObjectAtomicGetterCall()
1106 CGF.CGM.getObjCRuntime().GetCppAtomicObjectGetFunction(); in emitCPPObjectAtomicGetterCall()
1108 CGF.EmitCall( in emitCPPObjectAtomicGetterCall()
1109 CGF.getTypes().arrangeBuiltinFunctionCall(CGF.getContext().VoidTy, args), in emitCPPObjectAtomicGetterCall()
1290 static void emitStructSetterCall(CodeGenFunction &CGF, ObjCMethodDecl *OMD, in emitStructSetterCall() argument
1298 CGF.EmitLValueForIvar(CGF.TypeOfSelfObject(), CGF.LoadObjCSelf(), ivar, 0) in emitStructSetterCall()
1299 .getPointer(CGF); in emitStructSetterCall()
1300 ivarAddr = CGF.Builder.CreateBitCast(ivarAddr, CGF.Int8PtrTy); in emitStructSetterCall()
1301 args.add(RValue::get(ivarAddr), CGF.getContext().VoidPtrTy); in emitStructSetterCall()
1305 DeclRefExpr argRef(CGF.getContext(), argVar, false, in emitStructSetterCall()
1308 llvm::Value *argAddr = CGF.EmitLValue(&argRef).getPointer(CGF); in emitStructSetterCall()
1309 argAddr = CGF.Builder.CreateBitCast(argAddr, CGF.Int8PtrTy); in emitStructSetterCall()
1310 args.add(RValue::get(argAddr), CGF.getContext().VoidPtrTy); in emitStructSetterCall()
1314 CGF.CGM.getSize(CGF.getContext().getTypeSizeInChars(ivar->getType())); in emitStructSetterCall()
1315 args.add(RValue::get(size), CGF.getContext().getSizeType()); in emitStructSetterCall()
1318 args.add(RValue::get(CGF.Builder.getTrue()), CGF.getContext().BoolTy); in emitStructSetterCall()
1322 args.add(RValue::get(CGF.Builder.getFalse()), CGF.getContext().BoolTy); in emitStructSetterCall()
1324 llvm::FunctionCallee fn = CGF.CGM.getObjCRuntime().GetSetStructFunction(); in emitStructSetterCall()
1326 CGF.EmitCall( in emitStructSetterCall()
1327 CGF.getTypes().arrangeBuiltinFunctionCall(CGF.getContext().VoidTy, args), in emitStructSetterCall()
1334 static void emitCPPObjectAtomicSetterCall(CodeGenFunction &CGF, in emitCPPObjectAtomicSetterCall() argument
1344 CGF.EmitLValueForIvar(CGF.TypeOfSelfObject(), CGF.LoadObjCSelf(), ivar, 0) in emitCPPObjectAtomicSetterCall()
1345 .getPointer(CGF); in emitCPPObjectAtomicSetterCall()
1346 ivarAddr = CGF.Builder.CreateBitCast(ivarAddr, CGF.Int8PtrTy); in emitCPPObjectAtomicSetterCall()
1347 args.add(RValue::get(ivarAddr), CGF.getContext().VoidPtrTy); in emitCPPObjectAtomicSetterCall()
1351 DeclRefExpr argRef(CGF.getContext(), argVar, false, in emitCPPObjectAtomicSetterCall()
1354 llvm::Value *argAddr = CGF.EmitLValue(&argRef).getPointer(CGF); in emitCPPObjectAtomicSetterCall()
1355 argAddr = CGF.Builder.CreateBitCast(argAddr, CGF.Int8PtrTy); in emitCPPObjectAtomicSetterCall()
1356 args.add(RValue::get(argAddr), CGF.getContext().VoidPtrTy); in emitCPPObjectAtomicSetterCall()
1359 args.add(RValue::get(AtomicHelperFn), CGF.getContext().VoidPtrTy); in emitCPPObjectAtomicSetterCall()
1362 CGF.CGM.getObjCRuntime().GetCppAtomicObjectSetFunction(); in emitCPPObjectAtomicSetterCall()
1364 CGF.EmitCall( in emitCPPObjectAtomicSetterCall()
1365 CGF.getTypes().arrangeBuiltinFunctionCall(CGF.getContext().VoidTy, args), in emitCPPObjectAtomicSetterCall()
1609 void Emit(CodeGenFunction &CGF, Flags flags) override { in Emit()
1611 = CGF.EmitLValueForIvar(CGF.TypeOfSelfObject(), addr, ivar, /*CVR*/ 0); in Emit()
1612 CGF.emitDestroy(lvalue.getAddress(CGF), ivar->getType(), destroyer, in Emit()
1619 static void destroyARCStrongWithStore(CodeGenFunction &CGF, in destroyARCStrongWithStore() argument
1623 CGF.EmitARCStoreStrongCall(addr, null, /*ignored*/ true); in destroyARCStrongWithStore()
1626 static void emitCXXDestructMethod(CodeGenFunction &CGF, in emitCXXDestructMethod() argument
1628 CodeGenFunction::RunCleanupsScope scope(CGF); in emitCXXDestructMethod()
1630 llvm::Value *self = CGF.LoadObjCSelf(); in emitCXXDestructMethod()
1650 destroyer = CGF.getDestroyer(dtorKind); in emitCXXDestructMethod()
1653 CleanupKind cleanupKind = CGF.getCleanupKind(dtorKind); in emitCXXDestructMethod()
1655 CGF.EHStack.pushCleanup<DestroyIvar>(cleanupKind, self, ivar, destroyer, in emitCXXDestructMethod()
2056 void Emit(CodeGenFunction &CGF, Flags flags) override { in Emit()
2058 CGF.EmitARCRelease(object, ARCImpreciseLifetime); in Emit()
2127 CodeGenFunction &CGF, llvm::Value *value, llvm::Type *returnType, in emitARCValueOperation() argument
2134 fn = getARCIntrinsic(IntID, CGF.CGM); in emitARCValueOperation()
2138 value = CGF.Builder.CreateBitCast(value, CGF.Int8PtrTy); in emitARCValueOperation()
2141 llvm::CallInst *call = CGF.EmitNounwindRuntimeCall(fn, value); in emitARCValueOperation()
2145 return CGF.Builder.CreateBitCast(call, origType); in emitARCValueOperation()
2150 static llvm::Value *emitARCLoadOperation(CodeGenFunction &CGF, Address addr, in emitARCLoadOperation() argument
2154 fn = getARCIntrinsic(IntID, CGF.CGM); in emitARCLoadOperation()
2158 addr = CGF.Builder.CreateElementBitCast(addr, CGF.Int8PtrTy); in emitARCLoadOperation()
2161 llvm::Value *result = CGF.EmitNounwindRuntimeCall(fn, addr.getPointer()); in emitARCLoadOperation()
2164 if (origType != CGF.Int8PtrTy) in emitARCLoadOperation()
2165 result = CGF.Builder.CreateBitCast(result, origType); in emitARCLoadOperation()
2172 static llvm::Value *emitARCStoreOperation(CodeGenFunction &CGF, Address addr, in emitARCStoreOperation() argument
2180 fn = getARCIntrinsic(IntID, CGF.CGM); in emitARCStoreOperation()
2185 CGF.Builder.CreateBitCast(addr.getPointer(), CGF.Int8PtrPtrTy), in emitARCStoreOperation()
2186 CGF.Builder.CreateBitCast(value, CGF.Int8PtrTy) in emitARCStoreOperation()
2188 llvm::CallInst *result = CGF.EmitNounwindRuntimeCall(fn, args); in emitARCStoreOperation()
2192 return CGF.Builder.CreateBitCast(result, origType); in emitARCStoreOperation()
2197 static void emitARCCopyOperation(CodeGenFunction &CGF, Address dst, Address src, in emitARCCopyOperation() argument
2203 fn = getARCIntrinsic(IntID, CGF.CGM); in emitARCCopyOperation()
2206 CGF.Builder.CreateBitCast(dst.getPointer(), CGF.Int8PtrPtrTy), in emitARCCopyOperation()
2207 CGF.Builder.CreateBitCast(src.getPointer(), CGF.Int8PtrPtrTy) in emitARCCopyOperation()
2209 CGF.EmitNounwindRuntimeCall(fn, args); in emitARCCopyOperation()
2215 static llvm::Value *emitObjCValueOperation(CodeGenFunction &CGF, in emitObjCValueOperation() argument
2225 llvm::FunctionType::get(CGF.Int8PtrTy, CGF.Int8PtrTy, false); in emitObjCValueOperation()
2226 fn = CGF.CGM.CreateRuntimeFunction(fnType, fnName); in emitObjCValueOperation()
2236 value = CGF.Builder.CreateBitCast(value, CGF.Int8PtrTy); in emitObjCValueOperation()
2239 llvm::CallBase *Inst = CGF.EmitCallOrInvoke(fn, value); in emitObjCValueOperation()
2248 return CGF.Builder.CreateBitCast(Inst, origType); in emitObjCValueOperation()
2299 static void emitAutoreleasedReturnValueMarker(CodeGenFunction &CGF) { in emitAutoreleasedReturnValueMarker() argument
2303 = CGF.CGM.getObjCEntrypoints().retainAutoreleasedReturnValueMarker; in emitAutoreleasedReturnValueMarker()
2306 = CGF.CGM.getTargetCodeGenInfo() in emitAutoreleasedReturnValueMarker()
2314 } else if (CGF.CGM.getCodeGenOpts().OptimizationLevel == 0) { in emitAutoreleasedReturnValueMarker()
2316 llvm::FunctionType::get(CGF.VoidTy, /*variadic*/false); in emitAutoreleasedReturnValueMarker()
2325 if (!CGF.CGM.getModule().getModuleFlag(retainRVMarkerKey)) { in emitAutoreleasedReturnValueMarker()
2326 auto *str = llvm::MDString::get(CGF.getLLVMContext(), assembly); in emitAutoreleasedReturnValueMarker()
2327 CGF.CGM.getModule().addModuleFlag(llvm::Module::Error, in emitAutoreleasedReturnValueMarker()
2335 CGF.Builder.CreateCall(marker, None, CGF.getBundlesForFunclet(marker)); in emitAutoreleasedReturnValueMarker()
2340 CodeGenFunction &CGF) { in emitOptimizedARCReturnCall() argument
2341 emitAutoreleasedReturnValueMarker(CGF); in emitOptimizedARCReturnCall()
2347 ObjCEntrypoints &EPs = CGF.CGM.getObjCEntrypoints(); in emitOptimizedARCReturnCall()
2354 EP = getARCIntrinsic(IID, CGF.CGM); in emitOptimizedARCReturnCall()
2356 llvm::Triple::ArchType Arch = CGF.CGM.getTriple().getArch(); in emitOptimizedARCReturnCall()
2360 if (CGF.CGM.getCodeGenOpts().OptimizationLevel > 0 && in emitOptimizedARCReturnCall()
2370 CGF.EmitARCNoopIntrinsicUse(newCall); in emitOptimizedARCReturnCall()
2375 CGF.CGM.getTargetCodeGenInfo().markARCOptimizedReturnCallsAsNoTail(); in emitOptimizedARCReturnCall()
2378 return emitARCValueOperation(CGF, value, nullptr, EP, IID, tailKind); in emitOptimizedARCReturnCall()
2750 void CodeGenFunction::destroyARCStrongPrecise(CodeGenFunction &CGF, in destroyARCStrongPrecise() argument
2753 CGF.EmitARCDestroyStrong(addr, ARCPreciseLifetime); in destroyARCStrongPrecise()
2756 void CodeGenFunction::destroyARCStrongImprecise(CodeGenFunction &CGF, in destroyARCStrongImprecise() argument
2759 CGF.EmitARCDestroyStrong(addr, ARCImpreciseLifetime); in destroyARCStrongImprecise()
2762 void CodeGenFunction::destroyARCWeak(CodeGenFunction &CGF, in destroyARCWeak() argument
2765 CGF.EmitARCDestroyWeak(addr); in destroyARCWeak()
2768 void CodeGenFunction::emitARCIntrinsicUse(CodeGenFunction &CGF, Address addr, in emitARCIntrinsicUse() argument
2770 llvm::Value *value = CGF.Builder.CreateLoad(addr); in emitARCIntrinsicUse()
2771 CGF.EmitARCIntrinsicUse(value); in emitARCIntrinsicUse()
2829 void Emit(CodeGenFunction &CGF, Flags flags) override { in Emit()
2830 CGF.EmitObjCAutoreleasePoolPop(Token); in Emit()
2838 void Emit(CodeGenFunction &CGF, Flags flags) override { in Emit()
2839 CGF.EmitObjCMRRAutoreleasePoolPop(Token); in Emit()
2866 static TryEmitResult tryEmitARCRetainLoadOfScalar(CodeGenFunction &CGF, in tryEmitARCRetainLoadOfScalar() argument
2872 result = CGF.EmitLoadOfLValue(lvalue, SourceLocation()).getScalarVal(); in tryEmitARCRetainLoadOfScalar()
2875 result = CGF.EmitARCLoadWeakRetained(lvalue.getAddress(CGF)); in tryEmitARCRetainLoadOfScalar()
2880 static TryEmitResult tryEmitARCRetainLoadOfScalar(CodeGenFunction &CGF, in tryEmitARCRetainLoadOfScalar() argument
2892 LValue lv = CGF.EmitLValue(e); in tryEmitARCRetainLoadOfScalar()
2895 llvm::Value *result = CGF.EmitLoadOfLValue(lv, in tryEmitARCRetainLoadOfScalar()
2899 CGF.EmitStoreOfScalar(getNullForVariable(lv.getAddress(CGF)), lv); in tryEmitARCRetainLoadOfScalar()
2907 if (CGF.getLangOpts().CPlusPlus && in tryEmitARCRetainLoadOfScalar()
2912 return TryEmitResult(CGF.EmitScalarExpr(e), false); in tryEmitARCRetainLoadOfScalar()
2919 if (CodeGenFunction::ConstantEmission constant = CGF.tryEmitAsConstant(DRE)) in tryEmitARCRetainLoadOfScalar()
2920 return TryEmitResult(CGF.emitScalarConstant(constant, DRE), in tryEmitARCRetainLoadOfScalar()
2924 return tryEmitARCRetainLoadOfScalar(CGF, CGF.EmitLValue(e), type); in tryEmitARCRetainLoadOfScalar()
2927 typedef llvm::function_ref<llvm::Value *(CodeGenFunction &CGF,
2935 static llvm::Value *emitARCOperationAfterCall(CodeGenFunction &CGF, in emitARCOperationAfterCall() argument
2939 CGBuilderTy::InsertPoint ip = CGF.Builder.saveIP(); in emitARCOperationAfterCall()
2944 value = doFallback(CGF, value); in emitARCOperationAfterCall()
2947 CGF.Builder.SetInsertPoint(call->getParent(), in emitARCOperationAfterCall()
2949 value = doAfterCall(CGF, value); in emitARCOperationAfterCall()
2953 CGF.Builder.SetInsertPoint(BB, BB->begin()); in emitARCOperationAfterCall()
2954 value = doAfterCall(CGF, value); in emitARCOperationAfterCall()
2961 CGF.Builder.SetInsertPoint(bitcast->getParent(), bitcast->getIterator()); in emitARCOperationAfterCall()
2963 operand = emitARCOperationAfterCall(CGF, operand, doAfterCall, doFallback); in emitARCOperationAfterCall()
2974 inVal = emitARCOperationAfterCall(CGF, inVal, doAfterCall, doFallback); in emitARCOperationAfterCall()
2981 value = doFallback(CGF, value); in emitARCOperationAfterCall()
2985 CGF.Builder.restoreIP(ip); in emitARCOperationAfterCall()
2991 static llvm::Value *emitARCRetainCallResult(CodeGenFunction &CGF, in emitARCRetainCallResult() argument
2993 llvm::Value *value = CGF.EmitScalarExpr(e); in emitARCRetainCallResult()
2994 return emitARCOperationAfterCall(CGF, value, in emitARCRetainCallResult()
2995 [](CodeGenFunction &CGF, llvm::Value *value) { in emitARCRetainCallResult() argument
2996 return CGF.EmitARCRetainAutoreleasedReturnValue(value); in emitARCRetainCallResult()
2998 [](CodeGenFunction &CGF, llvm::Value *value) { in emitARCRetainCallResult() argument
2999 return CGF.EmitARCRetainNonBlock(value); in emitARCRetainCallResult()
3005 static llvm::Value *emitARCUnsafeClaimCallResult(CodeGenFunction &CGF, in emitARCUnsafeClaimCallResult() argument
3007 llvm::Value *value = CGF.EmitScalarExpr(e); in emitARCUnsafeClaimCallResult()
3008 return emitARCOperationAfterCall(CGF, value, in emitARCUnsafeClaimCallResult()
3009 [](CodeGenFunction &CGF, llvm::Value *value) { in emitARCUnsafeClaimCallResult() argument
3010 return CGF.EmitARCUnsafeClaimAutoreleasedReturnValue(value); in emitARCUnsafeClaimCallResult()
3012 [](CodeGenFunction &CGF, llvm::Value *value) { in emitARCUnsafeClaimCallResult() argument
3069 CodeGenFunction &CGF; member in __anona2ef92f60a11::ARCExprEmitter
3072 ARCExprEmitter(CodeGenFunction &CGF) : CGF(CGF) {} in ARCExprEmitter() argument
3127 opaqueData = OVMA::bind(CGF, ov, in visitPseudoObjectExpr()
3132 opaqueData = OVMA::bind(CGF, ov, ov->getSourceExpr()); in visitPseudoObjectExpr()
3143 CGF.EmitIgnoredExpr(semantic); in visitPseudoObjectExpr()
3149 opaques[i].unbind(CGF); in visitPseudoObjectExpr()
3173 llvm::Type *resultType = CGF.ConvertType(e->getType()); in visitCastExpr()
3200 CGF.EmitIgnoredExpr(e->getLHS()); in visitBinaryOperator()
3201 CGF.EnsureInsertPoint(); in visitBinaryOperator()
3244 CGF.EmitCheckedLValue(e->getLHS(), CodeGenFunction::TCK_Store); in visitBinAssignUnsafeUnretained()
3245 CGF.EmitStoreThroughLValue(RValue::get(asImpl().getValueOfResult(result)), in visitBinAssignUnsafeUnretained()
3315 ARCRetainExprEmitter(CodeGenFunction &CGF) : ARCExprEmitter(CGF) {} in ARCRetainExprEmitter()
3323 value = CGF.Builder.CreateBitCast(value, resultType); in emitBitCast()
3329 return tryEmitARCRetainLoadOfScalar(CGF, e); in visitLValueToRValue()
3335 llvm::Value *result = CGF.EmitScalarExpr(e); in visitConsumeObject()
3343 if (CGF.CGM.getCodeGenOpts().ObjCAvoidHeapifyLocalBlocks && in visitBlockExpr()
3358 result = CGF.EmitScalarExpr(e); in visitExtendBlockObject()
3374 result = CGF.EmitARCRetainBlock(result, /*mandatory*/ true); in visitExtendBlockObject()
3381 llvm::Value *result = emitARCRetainCallResult(CGF, e); in visitReclaimReturnedObject()
3387 llvm::Value *result = emitARCRetainCallResult(CGF, e); in visitCall()
3396 llvm::Value *result = CGF.EmitScalarExpr(e); in visitExpr()
3403 tryEmitARCRetainScalarExpr(CodeGenFunction &CGF, const Expr *e) { in tryEmitARCRetainScalarExpr() argument
3404 return ARCRetainExprEmitter(CGF).visit(e); in tryEmitARCRetainScalarExpr()
3407 static llvm::Value *emitARCRetainLoadOfScalar(CodeGenFunction &CGF, in emitARCRetainLoadOfScalar() argument
3410 TryEmitResult result = tryEmitARCRetainLoadOfScalar(CGF, lvalue, type); in emitARCRetainLoadOfScalar()
3413 value = CGF.EmitARCRetain(type, value); in emitARCRetainLoadOfScalar()
3492 ARCUnsafeUnretainedExprEmitter(CodeGenFunction &CGF) : ARCExprEmitter(CGF) {} in ARCUnsafeUnretainedExprEmitter()
3499 return CGF.Builder.CreateBitCast(value, resultType); in emitBitCast()
3503 return CGF.EmitScalarExpr(e); in visitLValueToRValue()
3509 llvm::Value *value = CGF.EmitScalarExpr(e); in visitConsumeObject()
3510 return CGF.EmitObjCConsumeObject(e->getType(), value); in visitConsumeObject()
3516 return CGF.EmitARCExtendBlockObject(e); in visitExtendBlockObject()
3521 return CGF.EmitARCReclaimReturnedObject(e, /*unsafe*/ true); in visitReclaimReturnedObject()
3527 return CGF.EmitScalarExpr(e); in visitCall()
3532 return CGF.EmitScalarExpr(e); in visitExpr()
3537 static llvm::Value *emitARCUnsafeUnretainedScalarExpr(CodeGenFunction &CGF, in emitARCUnsafeUnretainedScalarExpr() argument
3539 return ARCUnsafeUnretainedExprEmitter(CGF).visit(e); in emitARCUnsafeUnretainedScalarExpr()
3905 static llvm::Value *emitIsPlatformVersionAtLeast(CodeGenFunction &CGF, in emitIsPlatformVersionAtLeast() argument
3907 CodeGenModule &CGM = CGF.CGM; in emitIsPlatformVersionAtLeast()
3934 CGF.EmitNounwindRuntimeCall(CGM.IsPlatformVersionAtLeastFn, Args); in emitIsPlatformVersionAtLeast()
3935 return CGF.Builder.CreateICmpNE(Check, in emitIsPlatformVersionAtLeast()
4023 CodeGenFunction CGF(*this); in emitAtAvailableLinkGuard() local
4024 CGF.Builder.SetInsertPoint(CGF.createBasicBlock("", CFLinkCheckFunc)); in emitAtAvailableLinkGuard()
4025 CGF.EmitNounwindRuntimeCall(CFFunc, in emitAtAvailableLinkGuard()
4027 CGF.Builder.CreateUnreachable(); in emitAtAvailableLinkGuard()