Lines Matching refs:CodeGenFunction

15 #include "CodeGenFunction.h"
37 tryEmitARCRetainScalarExpr(CodeGenFunction &CGF, const Expr *e);
38 static RValue AdjustObjCObjectType(CodeGenFunction &CGF,
50 llvm::Value *CodeGenFunction::EmitObjCStringLiteral(const ObjCStringLiteral *E)
63 CodeGenFunction::EmitObjCBoxedExpr(const ObjCBoxedExpr *E) {
122 llvm::Value *CodeGenFunction::EmitObjCCollectionLiteral(const Expr *E,
246 llvm::Value *CodeGenFunction::EmitObjCArrayLiteral(const ObjCArrayLiteral *E) {
250 llvm::Value *CodeGenFunction::EmitObjCDictionaryLiteral(
256 llvm::Value *CodeGenFunction::EmitObjCSelectorExpr(const ObjCSelectorExpr *E) {
264 llvm::Value *CodeGenFunction::EmitObjCProtocolExpr(const ObjCProtocolExpr *E) {
272 static RValue AdjustObjCObjectType(CodeGenFunction &CGF, QualType ExpT,
377 CodeGenFunction &CGF, QualType ResultType, llvm::Value *Receiver,
438 CodeGenFunction &CGF, ReturnValueSlot Return, QualType ResultType,
524 tryEmitSpecializedAllocInit(CodeGenFunction &CGF, const ObjCMessageExpr *OME) {
572 RValue CodeGenFunction::EmitObjCMessageExpr(const ObjCMessageExpr *E,
722 void Emit(CodeGenFunction &CGF, Flags flags) override {
750 /// CodeGenFunction.
751 void CodeGenFunction::StartObjCMethod(const ObjCMethodDecl *OMD,
801 static llvm::Value *emitARCRetainLoadOfScalar(CodeGenFunction &CGF,
806 void CodeGenFunction::GenerateObjCMethod(const ObjCMethodDecl *OMD) {
817 static void emitStructGetterCall(CodeGenFunction &CGF, ObjCIvarDecl *ivar,
1048 void CodeGenFunction::GenerateObjCGetter(ObjCImplementationDecl *IMP,
1051 CodeGenFunction(CGM).GenerateObjCAtomicGetterCopyHelperFunction(PID);
1086 static void emitCPPObjectAtomicGetterCall(CodeGenFunction &CGF,
1120 static llvm::Value *emitCmdValueForGetterSetterBody(CodeGenFunction &CGF,
1134 CodeGenFunction::generateObjCGetterBody(const ObjCImplementationDecl *classImpl,
1323 static void emitStructSetterCall(CodeGenFunction &CGF, ObjCMethodDecl *OMD,
1366 static void emitCPPObjectAtomicSetterCall(CodeGenFunction &CGF,
1431 CodeGenFunction::generateObjCSetterBody(const ObjCImplementationDecl *classImpl,
1627 void CodeGenFunction::GenerateObjCSetter(ObjCImplementationDecl *IMP,
1630 CodeGenFunction(CGM).GenerateObjCAtomicSetterCopyHelperFunction(PID);
1645 CodeGenFunction::Destroyer *destroyer;
1649 CodeGenFunction::Destroyer *destroyer,
1654 void Emit(CodeGenFunction &CGF, Flags flags) override {
1663 /// Like CodeGenFunction::destroyARCStrong, but do it with a call.
1664 static void destroyARCStrongWithStore(CodeGenFunction &CGF,
1671 static void emitCXXDestructMethod(CodeGenFunction &CGF,
1673 CodeGenFunction::RunCleanupsScope scope(CGF);
1686 CodeGenFunction::Destroyer *destroyer = nullptr;
1707 void CodeGenFunction::GenerateObjCCtorDtorMethod(ObjCImplementationDecl *IMP,
1743 llvm::Value *CodeGenFunction::LoadObjCSelf() {
1751 QualType CodeGenFunction::TypeOfSelfObject() {
1759 void CodeGenFunction::EmitObjCForCollectionStmt(const ObjCForCollectionStmt &S){
2079 void CodeGenFunction::EmitObjCAtTryStmt(const ObjCAtTryStmt &S) {
2083 void CodeGenFunction::EmitObjCAtThrowStmt(const ObjCAtThrowStmt &S) {
2087 void CodeGenFunction::EmitObjCAtSynchronizedStmt(
2097 void Emit(CodeGenFunction &CGF, Flags flags) override {
2106 llvm::Value *CodeGenFunction::EmitObjCConsumeObject(QualType type,
2114 llvm::Value *CodeGenFunction::EmitObjCExtendObjectLifetime(QualType type,
2121 void CodeGenFunction::EmitARCIntrinsicUse(ArrayRef<llvm::Value*> values) {
2133 void CodeGenFunction::EmitARCNoopIntrinsicUse(ArrayRef<llvm::Value *> values) {
2168 CodeGenFunction &CGF, llvm::Value *value, llvm::Type *returnType,
2191 static llvm::Value *emitARCLoadOperation(CodeGenFunction &CGF, Address addr,
2202 static llvm::Value *emitARCStoreOperation(CodeGenFunction &CGF, Address addr,
2226 static void emitARCCopyOperation(CodeGenFunction &CGF, Address dst, Address src,
2243 static llvm::Value *emitObjCValueOperation(CodeGenFunction &CGF,
2282 llvm::Value *CodeGenFunction::EmitARCRetain(QualType type, llvm::Value *value) {
2291 llvm::Value *CodeGenFunction::EmitARCRetainNonBlock(llvm::Value *value) {
2303 llvm::Value *CodeGenFunction::EmitARCRetainBlock(llvm::Value *value,
2327 static void emitAutoreleasedReturnValueMarker(CodeGenFunction &CGF) {
2368 CodeGenFunction &CGF) {
2416 CodeGenFunction::EmitARCRetainAutoreleasedReturnValue(llvm::Value *value) {
2428 CodeGenFunction::EmitARCUnsafeClaimAutoreleasedReturnValue(llvm::Value *value) {
2434 void CodeGenFunction::EmitARCRelease(llvm::Value *value,
2463 void CodeGenFunction::EmitARCDestroyStrong(Address addr,
2477 llvm::Value *CodeGenFunction::EmitARCStoreStrongCall(Address addr,
2498 llvm::Value *CodeGenFunction::EmitARCStoreStrong(LValue dst,
2533 llvm::Value *CodeGenFunction::EmitARCAutorelease(llvm::Value *value) {
2542 CodeGenFunction::EmitARCAutoreleaseReturnValue(llvm::Value *value) {
2552 CodeGenFunction::EmitARCRetainAutoreleaseReturnValue(llvm::Value *value) {
2564 llvm::Value *CodeGenFunction::EmitARCRetainAutorelease(QualType type,
2581 CodeGenFunction::EmitARCRetainAutoreleaseNonBlock(llvm::Value *value) {
2589 llvm::Value *CodeGenFunction::EmitARCLoadWeak(Address addr) {
2596 llvm::Value *CodeGenFunction::EmitARCLoadWeakRetained(Address addr) {
2604 llvm::Value *CodeGenFunction::EmitARCStoreWeak(Address addr,
2616 void CodeGenFunction::EmitARCInitWeak(Address addr, llvm::Value *value) {
2634 void CodeGenFunction::EmitARCDestroyWeak(Address addr) {
2645 void CodeGenFunction::EmitARCMoveWeak(Address dst, Address src) {
2654 void CodeGenFunction::EmitARCCopyWeak(Address dst, Address src) {
2660 void CodeGenFunction::emitARCCopyAssignWeak(QualType Ty, Address DstAddr,
2667 void CodeGenFunction::emitARCMoveAssignWeak(QualType Ty, Address DstAddr,
2677 llvm::Value *CodeGenFunction::EmitObjCAutoreleasePoolPush() {
2687 void CodeGenFunction::EmitObjCAutoreleasePoolPop(llvm::Value *value) {
2717 llvm::Value *CodeGenFunction::EmitObjCMRRAutoreleasePoolPush() {
2742 llvm::Value *CodeGenFunction::EmitObjCAlloc(llvm::Value *value,
2751 llvm::Value *CodeGenFunction::EmitObjCAllocWithZone(llvm::Value *value,
2758 llvm::Value *CodeGenFunction::EmitObjCAllocInit(llvm::Value *value,
2767 void CodeGenFunction::EmitObjCMRRAutoreleasePoolPop(llvm::Value *Arg) {
2775 void CodeGenFunction::destroyARCStrongPrecise(CodeGenFunction &CGF,
2781 void CodeGenFunction::destroyARCStrongImprecise(CodeGenFunction &CGF,
2787 void CodeGenFunction::destroyARCWeak(CodeGenFunction &CGF,
2793 void CodeGenFunction::emitARCIntrinsicUse(CodeGenFunction &CGF, Address addr,
2801 llvm::Value *CodeGenFunction::EmitObjCAutorelease(llvm::Value *value,
2811 llvm::Value *CodeGenFunction::EmitObjCRetainNonBlock(llvm::Value *value,
2820 void CodeGenFunction::EmitObjCRelease(llvm::Value *value,
2854 void Emit(CodeGenFunction &CGF, Flags flags) override {
2863 void Emit(CodeGenFunction &CGF, Flags flags) override {
2869 void CodeGenFunction::EmitObjCAutoreleasePoolCleanup(llvm::Value *Ptr) {
2891 static TryEmitResult tryEmitARCRetainLoadOfScalar(CodeGenFunction &CGF,
2905 static TryEmitResult tryEmitARCRetainLoadOfScalar(CodeGenFunction &CGF,
2944 if (CodeGenFunction::ConstantEmission constant = CGF.tryEmitAsConstant(DRE))
2952 typedef llvm::function_ref<llvm::Value *(CodeGenFunction &CGF,
2960 static llvm::Value *emitARCOperationAfterCall(CodeGenFunction &CGF,
3016 static llvm::Value *emitARCRetainCallResult(CodeGenFunction &CGF,
3020 [](CodeGenFunction &CGF, llvm::Value *value) {
3023 [](CodeGenFunction &CGF, llvm::Value *value) {
3030 static llvm::Value *emitARCUnsafeClaimCallResult(CodeGenFunction &CGF,
3034 [](CodeGenFunction &CGF, llvm::Value *value) {
3037 [](CodeGenFunction &CGF, llvm::Value *value) {
3042 llvm::Value *CodeGenFunction::EmitARCReclaimReturnedObject(const Expr *E,
3094 CodeGenFunction &CGF;
3097 ARCExprEmitter(CodeGenFunction &CGF) : CGF(CGF) {}
3130 SmallVector<CodeGenFunction::OpaqueValueMappingData, 4> opaques;
3144 typedef CodeGenFunction::OpaqueValueMappingData OVMA;
3269 CGF.EmitCheckedLValue(e->getLHS(), CodeGenFunction::TCK_Store);
3340 ARCRetainExprEmitter(CodeGenFunction &CGF) : ARCExprEmitter(CGF) {}
3428 tryEmitARCRetainScalarExpr(CodeGenFunction &CGF, const Expr *e) {
3432 static llvm::Value *emitARCRetainLoadOfScalar(CodeGenFunction &CGF,
3446 llvm::Value *CodeGenFunction::EmitARCRetainScalarExpr(const Expr *e) {
3461 CodeGenFunction::EmitARCRetainAutoreleaseScalarExpr(const Expr *e) {
3477 llvm::Value *CodeGenFunction::EmitARCExtendBlockObject(const Expr *e) {
3495 llvm::Value *CodeGenFunction::EmitObjCThrowOperand(const Expr *expr) {
3517 ARCUnsafeUnretainedExprEmitter(CodeGenFunction &CGF) : ARCExprEmitter(CGF) {}
3562 static llvm::Value *emitARCUnsafeUnretainedScalarExpr(CodeGenFunction &CGF,
3571 llvm::Value *CodeGenFunction::EmitARCUnsafeUnretainedScalarExpr(const Expr *e) {
3582 CodeGenFunction::EmitARCStoreUnsafeUnretained(const BinaryOperator *e,
3601 CodeGenFunction::EmitARCStoreStrong(const BinaryOperator *e,
3632 CodeGenFunction::EmitARCStoreAutoreleasing(const BinaryOperator *e) {
3641 void CodeGenFunction::EmitObjCAutoreleasePoolStmt(
3669 void CodeGenFunction::EmitExtendGCLifetime(llvm::Value *object) {
3686 CodeGenFunction::GenerateObjCAtomicSetterCopyHelperFunction(
3786 llvm::Constant *CodeGenFunction::GenerateObjCAtomicGetterCopyHelperFunction(
3906 CodeGenFunction::EmitBlockCopyAndAutorelease(llvm::Value *Block, QualType Ty) {
3950 static llvm::Value *emitIsPlatformVersionAtLeast(CodeGenFunction &CGF,
3986 CodeGenFunction::EmitBuiltinAvailable(const VersionTuple &Version) {
4073 CodeGenFunction CGF(*this);