Lines Matching refs:CodeGenFunction

15 #include "CodeGenFunction.h"
38 tryEmitARCRetainScalarExpr(CodeGenFunction &CGF, const Expr *e);
39 static RValue AdjustObjCObjectType(CodeGenFunction &CGF,
51 llvm::Value *CodeGenFunction::EmitObjCStringLiteral(const ObjCStringLiteral *E)
64 CodeGenFunction::EmitObjCBoxedExpr(const ObjCBoxedExpr *E) {
123 llvm::Value *CodeGenFunction::EmitObjCCollectionLiteral(const Expr *E,
247 llvm::Value *CodeGenFunction::EmitObjCArrayLiteral(const ObjCArrayLiteral *E) {
251 llvm::Value *CodeGenFunction::EmitObjCDictionaryLiteral(
257 llvm::Value *CodeGenFunction::EmitObjCSelectorExpr(const ObjCSelectorExpr *E) {
265 llvm::Value *CodeGenFunction::EmitObjCProtocolExpr(const ObjCProtocolExpr *E) {
273 static RValue AdjustObjCObjectType(CodeGenFunction &CGF, QualType ExpT,
378 CodeGenFunction &CGF, QualType ResultType, llvm::Value *Receiver,
439 CodeGenFunction &CGF, ReturnValueSlot Return, QualType ResultType,
525 tryEmitSpecializedAllocInit(CodeGenFunction &CGF, const ObjCMessageExpr *OME) {
573 RValue CodeGenFunction::EmitObjCMessageExpr(const ObjCMessageExpr *E,
723 void Emit(CodeGenFunction &CGF, Flags flags) override {
751 /// CodeGenFunction.
752 void CodeGenFunction::StartObjCMethod(const ObjCMethodDecl *OMD,
802 static llvm::Value *emitARCRetainLoadOfScalar(CodeGenFunction &CGF,
807 void CodeGenFunction::GenerateObjCMethod(const ObjCMethodDecl *OMD) {
818 static void emitStructGetterCall(CodeGenFunction &CGF, ObjCIvarDecl *ivar,
1049 void CodeGenFunction::GenerateObjCGetter(ObjCImplementationDecl *IMP,
1052 CodeGenFunction(CGM).GenerateObjCAtomicGetterCopyHelperFunction(PID);
1087 static void emitCPPObjectAtomicGetterCall(CodeGenFunction &CGF,
1121 static llvm::Value *emitCmdValueForGetterSetterBody(CodeGenFunction &CGF,
1135 CodeGenFunction::generateObjCGetterBody(const ObjCImplementationDecl *classImpl,
1324 static void emitStructSetterCall(CodeGenFunction &CGF, ObjCMethodDecl *OMD,
1367 static void emitCPPObjectAtomicSetterCall(CodeGenFunction &CGF,
1432 CodeGenFunction::generateObjCSetterBody(const ObjCImplementationDecl *classImpl,
1628 void CodeGenFunction::GenerateObjCSetter(ObjCImplementationDecl *IMP,
1631 CodeGenFunction(CGM).GenerateObjCAtomicSetterCopyHelperFunction(PID);
1646 CodeGenFunction::Destroyer *destroyer;
1650 CodeGenFunction::Destroyer *destroyer,
1655 void Emit(CodeGenFunction &CGF, Flags flags) override {
1664 /// Like CodeGenFunction::destroyARCStrong, but do it with a call.
1665 static void destroyARCStrongWithStore(CodeGenFunction &CGF,
1672 static void emitCXXDestructMethod(CodeGenFunction &CGF,
1674 CodeGenFunction::RunCleanupsScope scope(CGF);
1687 CodeGenFunction::Destroyer *destroyer = nullptr;
1708 void CodeGenFunction::GenerateObjCCtorDtorMethod(ObjCImplementationDecl *IMP,
1744 llvm::Value *CodeGenFunction::LoadObjCSelf() {
1752 QualType CodeGenFunction::TypeOfSelfObject() {
1760 void CodeGenFunction::EmitObjCForCollectionStmt(const ObjCForCollectionStmt &S){
2080 void CodeGenFunction::EmitObjCAtTryStmt(const ObjCAtTryStmt &S) {
2084 void CodeGenFunction::EmitObjCAtThrowStmt(const ObjCAtThrowStmt &S) {
2088 void CodeGenFunction::EmitObjCAtSynchronizedStmt(
2098 void Emit(CodeGenFunction &CGF, Flags flags) override {
2107 llvm::Value *CodeGenFunction::EmitObjCConsumeObject(QualType type,
2115 llvm::Value *CodeGenFunction::EmitObjCExtendObjectLifetime(QualType type,
2122 void CodeGenFunction::EmitARCIntrinsicUse(ArrayRef<llvm::Value*> values) {
2134 void CodeGenFunction::EmitARCNoopIntrinsicUse(ArrayRef<llvm::Value *> values) {
2169 CodeGenFunction &CGF, llvm::Value *value, llvm::Type *returnType,
2192 static llvm::Value *emitARCLoadOperation(CodeGenFunction &CGF, Address addr,
2203 static llvm::Value *emitARCStoreOperation(CodeGenFunction &CGF, Address addr,
2227 static void emitARCCopyOperation(CodeGenFunction &CGF, Address dst, Address src,
2244 static llvm::Value *emitObjCValueOperation(CodeGenFunction &CGF,
2283 llvm::Value *CodeGenFunction::EmitARCRetain(QualType type, llvm::Value *value) {
2292 llvm::Value *CodeGenFunction::EmitARCRetainNonBlock(llvm::Value *value) {
2304 llvm::Value *CodeGenFunction::EmitARCRetainBlock(llvm::Value *value,
2328 static void emitAutoreleasedReturnValueMarker(CodeGenFunction &CGF) {
2370 CodeGenFunction &CGF) {
2417 CodeGenFunction::EmitARCRetainAutoreleasedReturnValue(llvm::Value *value) {
2429 CodeGenFunction::EmitARCUnsafeClaimAutoreleasedReturnValue(llvm::Value *value) {
2435 void CodeGenFunction::EmitARCRelease(llvm::Value *value,
2464 void CodeGenFunction::EmitARCDestroyStrong(Address addr,
2478 llvm::Value *CodeGenFunction::EmitARCStoreStrongCall(Address addr,
2499 llvm::Value *CodeGenFunction::EmitARCStoreStrong(LValue dst,
2534 llvm::Value *CodeGenFunction::EmitARCAutorelease(llvm::Value *value) {
2543 CodeGenFunction::EmitARCAutoreleaseReturnValue(llvm::Value *value) {
2553 CodeGenFunction::EmitARCRetainAutoreleaseReturnValue(llvm::Value *value) {
2565 llvm::Value *CodeGenFunction::EmitARCRetainAutorelease(QualType type,
2582 CodeGenFunction::EmitARCRetainAutoreleaseNonBlock(llvm::Value *value) {
2590 llvm::Value *CodeGenFunction::EmitARCLoadWeak(Address addr) {
2597 llvm::Value *CodeGenFunction::EmitARCLoadWeakRetained(Address addr) {
2605 llvm::Value *CodeGenFunction::EmitARCStoreWeak(Address addr,
2617 void CodeGenFunction::EmitARCInitWeak(Address addr, llvm::Value *value) {
2635 void CodeGenFunction::EmitARCDestroyWeak(Address addr) {
2646 void CodeGenFunction::EmitARCMoveWeak(Address dst, Address src) {
2655 void CodeGenFunction::EmitARCCopyWeak(Address dst, Address src) {
2661 void CodeGenFunction::emitARCCopyAssignWeak(QualType Ty, Address DstAddr,
2668 void CodeGenFunction::emitARCMoveAssignWeak(QualType Ty, Address DstAddr,
2678 llvm::Value *CodeGenFunction::EmitObjCAutoreleasePoolPush() {
2688 void CodeGenFunction::EmitObjCAutoreleasePoolPop(llvm::Value *value) {
2718 llvm::Value *CodeGenFunction::EmitObjCMRRAutoreleasePoolPush() {
2743 llvm::Value *CodeGenFunction::EmitObjCAlloc(llvm::Value *value,
2752 llvm::Value *CodeGenFunction::EmitObjCAllocWithZone(llvm::Value *value,
2759 llvm::Value *CodeGenFunction::EmitObjCAllocInit(llvm::Value *value,
2768 void CodeGenFunction::EmitObjCMRRAutoreleasePoolPop(llvm::Value *Arg) {
2776 void CodeGenFunction::destroyARCStrongPrecise(CodeGenFunction &CGF,
2782 void CodeGenFunction::destroyARCStrongImprecise(CodeGenFunction &CGF,
2788 void CodeGenFunction::destroyARCWeak(CodeGenFunction &CGF,
2794 void CodeGenFunction::emitARCIntrinsicUse(CodeGenFunction &CGF, Address addr,
2802 llvm::Value *CodeGenFunction::EmitObjCAutorelease(llvm::Value *value,
2812 llvm::Value *CodeGenFunction::EmitObjCRetainNonBlock(llvm::Value *value,
2821 void CodeGenFunction::EmitObjCRelease(llvm::Value *value,
2855 void Emit(CodeGenFunction &CGF, Flags flags) override {
2864 void Emit(CodeGenFunction &CGF, Flags flags) override {
2870 void CodeGenFunction::EmitObjCAutoreleasePoolCleanup(llvm::Value *Ptr) {
2892 static TryEmitResult tryEmitARCRetainLoadOfScalar(CodeGenFunction &CGF,
2906 static TryEmitResult tryEmitARCRetainLoadOfScalar(CodeGenFunction &CGF,
2945 if (CodeGenFunction::ConstantEmission constant = CGF.tryEmitAsConstant(DRE))
2953 typedef llvm::function_ref<llvm::Value *(CodeGenFunction &CGF,
2961 static llvm::Value *emitARCOperationAfterCall(CodeGenFunction &CGF,
3017 static llvm::Value *emitARCRetainCallResult(CodeGenFunction &CGF,
3021 [](CodeGenFunction &CGF, llvm::Value *value) {
3024 [](CodeGenFunction &CGF, llvm::Value *value) {
3031 static llvm::Value *emitARCUnsafeClaimCallResult(CodeGenFunction &CGF,
3035 [](CodeGenFunction &CGF, llvm::Value *value) {
3038 [](CodeGenFunction &CGF, llvm::Value *value) {
3043 llvm::Value *CodeGenFunction::EmitARCReclaimReturnedObject(const Expr *E,
3095 CodeGenFunction &CGF;
3098 ARCExprEmitter(CodeGenFunction &CGF) : CGF(CGF) {}
3131 SmallVector<CodeGenFunction::OpaqueValueMappingData, 4> opaques;
3145 typedef CodeGenFunction::OpaqueValueMappingData OVMA;
3270 CGF.EmitCheckedLValue(e->getLHS(), CodeGenFunction::TCK_Store);
3341 ARCRetainExprEmitter(CodeGenFunction &CGF) : ARCExprEmitter(CGF) {}
3429 tryEmitARCRetainScalarExpr(CodeGenFunction &CGF, const Expr *e) {
3433 static llvm::Value *emitARCRetainLoadOfScalar(CodeGenFunction &CGF,
3447 llvm::Value *CodeGenFunction::EmitARCRetainScalarExpr(const Expr *e) {
3462 CodeGenFunction::EmitARCRetainAutoreleaseScalarExpr(const Expr *e) {
3478 llvm::Value *CodeGenFunction::EmitARCExtendBlockObject(const Expr *e) {
3496 llvm::Value *CodeGenFunction::EmitObjCThrowOperand(const Expr *expr) {
3518 ARCUnsafeUnretainedExprEmitter(CodeGenFunction &CGF) : ARCExprEmitter(CGF) {}
3563 static llvm::Value *emitARCUnsafeUnretainedScalarExpr(CodeGenFunction &CGF,
3572 llvm::Value *CodeGenFunction::EmitARCUnsafeUnretainedScalarExpr(const Expr *e) {
3583 CodeGenFunction::EmitARCStoreUnsafeUnretained(const BinaryOperator *e,
3602 CodeGenFunction::EmitARCStoreStrong(const BinaryOperator *e,
3633 CodeGenFunction::EmitARCStoreAutoreleasing(const BinaryOperator *e) {
3642 void CodeGenFunction::EmitObjCAutoreleasePoolStmt(
3670 void CodeGenFunction::EmitExtendGCLifetime(llvm::Value *object) {
3687 CodeGenFunction::GenerateObjCAtomicSetterCopyHelperFunction(
3787 llvm::Constant *CodeGenFunction::GenerateObjCAtomicGetterCopyHelperFunction(
3907 CodeGenFunction::EmitBlockCopyAndAutorelease(llvm::Value *Block, QualType Ty) {
3951 static llvm::Value *emitIsPlatformVersionAtLeast(CodeGenFunction &CGF,
3987 CodeGenFunction::EmitBuiltinAvailable(const VersionTuple &Version) {
4074 CodeGenFunction CGF(*this);