Lines Matching refs:CodeGenFunction
22 #include "CodeGenFunction.h"
88 CodeGenFunction::CreateTempAllocaWithoutCast(llvm::Type *Ty, CharUnits Align,
98 RawAddress CodeGenFunction::CreateTempAlloca(llvm::Type *Ty, CharUnits Align,
129 llvm::AllocaInst *CodeGenFunction::CreateTempAlloca(llvm::Type *Ty,
149 RawAddress CodeGenFunction::CreateDefaultAlignTempAlloca(llvm::Type *Ty,
156 RawAddress CodeGenFunction::CreateIRTemp(QualType Ty, const Twine &Name) {
161 RawAddress CodeGenFunction::CreateMemTemp(QualType Ty, const Twine &Name,
167 RawAddress CodeGenFunction::CreateMemTemp(QualType Ty, CharUnits Align,
184 RawAddress CodeGenFunction::CreateMemTempWithoutCast(QualType Ty,
190 RawAddress CodeGenFunction::CreateMemTempWithoutCast(QualType Ty,
198 llvm::Value *CodeGenFunction::EvaluateExprAsBool(const Expr *E) {
217 void CodeGenFunction::EmitIgnoredExpr(const Expr *E) {
239 RValue CodeGenFunction::EmitAnyExpr(const Expr *E,
258 RValue CodeGenFunction::EmitAnyExprToTemp(const Expr *E) {
268 void CodeGenFunction::EmitAnyExprToMem(const Expr *E,
298 void CodeGenFunction::EmitInitializationToLValue(
322 pushTemporaryCleanup(CodeGenFunction &CGF, const MaterializeTemporaryExpr *M,
354 CodeGenFunction::Destroyer *Destroy;
361 Destroy = Precise ? &CodeGenFunction::destroyARCStrongPrecise
362 : &CodeGenFunction::destroyARCStrongImprecise;
367 Destroy = &CodeGenFunction::destroyARCWeak;
405 CleanupFn = CodeGenFunction(CGF.CGM).generateDestroyHelper(
407 CodeGenFunction::destroyCXXObject, CGF.getLangOpts().Exceptions,
422 CodeGenFunction::destroyCXXObject,
429 CodeGenFunction::destroyCXXObject,
438 static RawAddress createReferenceTemporary(CodeGenFunction &CGF,
490 LValue CodeGenFunction::
664 CodeGenFunction::EmitReferenceBindingToExpr(const Expr *E) {
686 unsigned CodeGenFunction::getAccessedFieldNo(unsigned Idx,
701 bool CodeGenFunction::isNullPointerAllowed(TypeCheckKind TCK) {
706 bool CodeGenFunction::isVptrCheckRequired(TypeCheckKind TCK, QualType Ty) {
714 bool CodeGenFunction::sanitizePerformTypeCheck() const {
721 void CodeGenFunction::EmitTypeCheck(TypeCheckKind TCK, SourceLocation Loc,
923 llvm::Value *CodeGenFunction::LoadPassedObjectSize(const Expr *E,
964 static llvm::Value *getArrayIndexingBound(CodeGenFunction &CGF,
981 CodeGenFunction::SanitizerScope SanScope(&CGF);
994 CodeGenFunction::SanitizerScope SanScope(&CGF);
1114 static bool getGEPIndicesToField(CodeGenFunction &CGF, const RecordDecl *RD,
1145 llvm::Value *CodeGenFunction::GetCountedByFieldExprGEP(
1187 llvm::Value *CodeGenFunction::EmitLoadOfCountedByField(
1195 void CodeGenFunction::EmitBoundsCheck(const Expr *E, const Expr *Base,
1209 void CodeGenFunction::EmitBoundsCheckImpl(const Expr *E, llvm::Value *Bound,
1233 CodeGenFunction::ComplexPairTy CodeGenFunction::
1270 CodeGenFunction *CGF) {
1286 CodeGenFunction &CGF) {
1335 CodeGenFunction::CFITCK_UnrelatedCast,
1415 Address CodeGenFunction::EmitPointerWithAlignment(
1425 llvm::Value *CodeGenFunction::EmitNonNullRValueCheck(RValue RV, QualType T) {
1432 RValue CodeGenFunction::GetUndefRValue(QualType Ty) {
1458 RValue CodeGenFunction::EmitUnsupportedRValue(const Expr *E,
1464 LValue CodeGenFunction::EmitUnsupportedLValue(const Expr *E,
1473 bool CodeGenFunction::IsWrappedCXXThis(const Expr *Obj) {
1496 LValue CodeGenFunction::EmitCheckedLValue(const Expr *E, TypeCheckKind TCK) {
1531 LValue CodeGenFunction::EmitLValue(const Expr *E,
1552 LValue CodeGenFunction::EmitLValueHelper(const Expr *E,
1761 CodeGenFunction::ConstantEmission
1762 CodeGenFunction::tryEmitAsConstant(DeclRefExpr *refExpr) {
1846 static DeclRefExpr *tryToConvertMemberExprToDeclRefExpr(CodeGenFunction &CGF,
1858 CodeGenFunction::ConstantEmission
1859 CodeGenFunction::tryEmitAsConstant(const MemberExpr *ME) {
1865 llvm::Value *CodeGenFunction::emitScalarConstant(
1866 const CodeGenFunction::ConstantEmission &Constant, Expr *E) {
1875 llvm::Value *CodeGenFunction::EmitLoadOfScalar(LValue lvalue,
1895 static bool getRangeForType(CodeGenFunction &CGF, QualType Ty,
1914 llvm::MDNode *CodeGenFunction::getRangeForLoadFromType(QualType Ty) {
1924 bool CodeGenFunction::EmitScalarRangeCheck(llvm::Value *Value, QualType Ty,
1975 llvm::Value *CodeGenFunction::EmitLoadOfScalar(Address Addr, bool Volatile,
2058 llvm::Value *CodeGenFunction::EmitToMemory(llvm::Value *Value, QualType Ty) {
2081 llvm::Value *CodeGenFunction::EmitFromMemory(llvm::Value *Value, QualType Ty) {
2105 CodeGenFunction &CGF,
2130 bool isInit, CodeGenFunction &CGF) {
2138 void CodeGenFunction::EmitStoreOfScalar(llvm::Value *Value, Address Addr,
2187 void CodeGenFunction::EmitStoreOfScalar(llvm::Value *value, LValue lvalue,
2202 CodeGenFunction &CGF) {
2209 RValue CodeGenFunction::EmitLoadOfAnyValue(LValue LV, AggValueSlot Slot,
2227 RValue CodeGenFunction::EmitLoadOfLValue(LValue LV, SourceLocation Loc) {
2289 RValue CodeGenFunction::EmitLoadOfBitfieldLValue(LValue LV,
2326 RValue CodeGenFunction::EmitLoadOfExtVectorElementLValue(LValue LV) {
2361 Address CodeGenFunction::EmitExtVectorElementLValue(LValue LV) {
2379 RValue CodeGenFunction::EmitLoadOfGlobalRegLValue(LValue LV) {
2403 void CodeGenFunction::EmitStoreThroughLValue(RValue Src, LValue Dst,
2532 void CodeGenFunction::EmitStoreThroughBitfieldLValue(RValue Src, LValue Dst,
2610 void CodeGenFunction::EmitStoreThroughExtVectorComponentLValue(RValue Src,
2685 void CodeGenFunction::EmitStoreThroughGlobalRegLValue(RValue Src, LValue Dst) {
2808 CodeGenFunction &CGF, const VarDecl *VD, QualType T, Address Addr,
2811 Addr = CodeGenFunction::OMPBuilderCBHelpers::getAddrOfThreadPrivate(
2821 static Address emitDeclTargetVarDeclLValue(CodeGenFunction &CGF,
2843 CodeGenFunction::EmitLoadOfReference(LValue RefLVal,
2854 LValue CodeGenFunction::EmitLoadOfReferenceLValue(LValue RefLVal) {
2863 Address CodeGenFunction::EmitLoadOfPointer(Address Ptr,
2873 LValue CodeGenFunction::EmitLoadOfPointerLValue(Address PtrAddr,
2881 static LValue EmitGlobalVarDeclLValue(CodeGenFunction &CGF,
2932 static LValue EmitFunctionDeclLValue(CodeGenFunction &CGF, const Expr *E,
2941 static LValue EmitCapturedFieldLValue(CodeGenFunction &CGF, const FieldDecl *FD,
2978 static bool canEmitSpuriousReferenceToVariable(CodeGenFunction &CGF,
3025 LValue CodeGenFunction::EmitDeclRefLValue(const DeclRefExpr *E) {
3237 LValue CodeGenFunction::EmitUnaryOpLValue(const UnaryOperator *E) {
3247 assert(!T.isNull() && "CodeGenFunction::EmitUnaryOpLValue: Illegal type");
3304 LValue CodeGenFunction::EmitStringLiteralLValue(const StringLiteral *E) {
3309 LValue CodeGenFunction::EmitObjCEncodeExprLValue(const ObjCEncodeExpr *E) {
3314 LValue CodeGenFunction::EmitPredefinedLValue(const PredefinedExpr *E) {
3353 llvm::Constant *CodeGenFunction::EmitCheckTypeDescriptor(QualType T) {
3425 llvm::Value *CodeGenFunction::EmitCheckValue(llvm::Value *V) {
3463 llvm::Constant *CodeGenFunction::EmitCheckSourceLocation(SourceLocation Loc) {
3551 static void emitCheckHandlerCall(CodeGenFunction &CGF,
3603 void CodeGenFunction::EmitCheck(
3726 void CodeGenFunction::EmitCfiSlowPathCheck(
3774 void CodeGenFunction::EmitCfiCheckStub() {
3813 void CodeGenFunction::EmitCfiCheckFail() {
3900 void CodeGenFunction::EmitUnreachable(SourceLocation Loc) {
3911 void CodeGenFunction::EmitTrapCheck(llvm::Value *Checked,
3957 llvm::CallInst *CodeGenFunction::EmitTrapCall(llvm::Intrinsic::ID IntrID) {
3972 Address CodeGenFunction::EmitArrayToPointerDecay(const Expr *E,
4023 static llvm::Value *emitArraySubscriptGEP(CodeGenFunction &CGF,
4033 CodeGenFunction::NotSubtraction, loc,
4040 static Address emitArraySubscriptGEP(CodeGenFunction &CGF, Address addr,
4048 CodeGenFunction::NotSubtraction, loc,
4095 static Address wrapWithBPFPreserveStaticOffset(CodeGenFunction &CGF,
4108 static bool IsPreserveAIArrayBase(CodeGenFunction &CGF, const Expr *ArrayBase) {
4142 static Address emitArraySubscriptGEP(CodeGenFunction &CGF, Address addr,
4193 static bool getFieldOffsetInBits(CodeGenFunction &CGF, const RecordDecl *RD,
4224 static std::optional<int64_t> getOffsetDifferenceInBits(CodeGenFunction &CGF,
4247 LValue CodeGenFunction::EmitArraySubscriptExpr(const ArraySubscriptExpr *E,
4442 llvm::Value *CodeGenFunction::EmitMatrixIndexExpr(const Expr *E) {
4450 LValue CodeGenFunction::EmitMatrixSubscriptExpr(const MatrixSubscriptExpr *E) {
4470 static Address emitOMPArraySectionBase(CodeGenFunction &CGF, const Expr *Base,
4509 LValue CodeGenFunction::EmitArraySectionExpr(const ArraySectionExpr *E,
4672 LValue CodeGenFunction::
4730 LValue CodeGenFunction::EmitMemberExpr(const MemberExpr *E) {
4781 LValue CodeGenFunction::EmitLValueForLambdaField(const FieldDecl *Field,
4820 LValue CodeGenFunction::EmitLValueForLambdaField(const FieldDecl *Field) {
4826 unsigned CodeGenFunction::getDebugInfoFIndex(const RecordDecl *Rec,
4843 static Address emitAddrOfZeroSizeField(CodeGenFunction &CGF, Address Base,
4857 static Address emitAddrOfFieldStorage(CodeGenFunction &CGF, Address base,
4870 static Address emitPreserveStructAccess(CodeGenFunction &CGF, LValue base,
4902 LValue CodeGenFunction::EmitLValueForField(LValue base,
5072 CodeGenFunction::EmitLValueForFieldInitialization(LValue Base,
5095 LValue CodeGenFunction::EmitCompoundLiteralLValue(const CompoundLiteralExpr *E){
5122 LValue CodeGenFunction::EmitInitListLValue(const InitListExpr *E) {
5135 static std::optional<LValue> EmitLValueOrThrowExpression(CodeGenFunction &CGF,
5149 CodeGenFunction &CGF, const AbstractConditionalOperator *E) {
5185 ConditionalInfo EmitConditionalBlocks(CodeGenFunction &CGF,
5193 CodeGenFunction::ConditionalEvaluation eval(CGF);
5220 void CodeGenFunction::EmitIgnoredConditionalOperator(
5233 EmitConditionalBlocks(*this, E, [](CodeGenFunction &CGF, const Expr *E) {
5238 LValue CodeGenFunction::EmitConditionalOperatorLValue(
5253 *this, expr, [](CodeGenFunction &CGF, const Expr *E) {
5288 LValue CodeGenFunction::EmitCastLValue(const CastExpr *E) {
5478 LValue CodeGenFunction::EmitOpaqueValueLValue(const OpaqueValueExpr *e) {
5484 CodeGenFunction::EmitHLSLOutArgLValues(const HLSLOutArgExpr *E, QualType Ty) {
5501 LValue CodeGenFunction::EmitHLSLOutArgExpr(const HLSLOutArgExpr *E,
5521 CodeGenFunction::getOrCreateOpaqueLValueMapping(const OpaqueValueExpr *e) {
5535 CodeGenFunction::getOrCreateOpaqueRValueMapping(const OpaqueValueExpr *e) {
5548 RValue CodeGenFunction::EmitRValueForField(LValue LV,
5576 RValue CodeGenFunction::EmitCallExpr(const CallExpr *E,
5626 RValue CodeGenFunction::EmitSimpleCallExpr(const CallExpr *E,
5644 static CGCallee EmitDirectCallee(CodeGenFunction &CGF, GlobalDecl GD) {
5696 CGCallee CodeGenFunction::EmitCallee(const Expr *E) {
5749 LValue CodeGenFunction::EmitBinaryOperatorLValue(const BinaryOperator *E) {
5843 LValue CodeGenFunction::EmitHLSLArrayAssignLValue(const BinaryOperator *E) {
5853 LValue CodeGenFunction::EmitCallExprLValue(const CallExpr *E,
5868 LValue CodeGenFunction::EmitVAArgExprLValue(const VAArgExpr *E) {
5873 LValue CodeGenFunction::EmitCXXConstructLValue(const CXXConstructExpr *E) {
5882 CodeGenFunction::EmitCXXTypeidLValue(const CXXTypeidExpr *E) {
5886 Address CodeGenFunction::EmitCXXUuidofExpr(const CXXUuidofExpr *E) {
5891 LValue CodeGenFunction::EmitCXXUuidofLValue(const CXXUuidofExpr *E) {
5897 CodeGenFunction::EmitCXXBindTemporaryLValue(const CXXBindTemporaryExpr *E) {
5905 LValue CodeGenFunction::EmitObjCMessageExprLValue(const ObjCMessageExpr *E) {
5919 LValue CodeGenFunction::EmitObjCSelectorLValue(const ObjCSelectorExpr *E) {
5925 llvm::Value *CodeGenFunction::EmitIvarOffset(const ObjCInterfaceDecl *Interface,
5931 CodeGenFunction::EmitIvarOffsetAsPointerDiff(const ObjCInterfaceDecl *Interface,
5939 LValue CodeGenFunction::EmitLValueForIvar(QualType ObjectTy,
5947 LValue CodeGenFunction::EmitObjCIvarRefLValue(const ObjCIvarRefExpr *E) {
5971 LValue CodeGenFunction::EmitStmtExprLValue(const StmtExpr *E) {
5978 RValue CodeGenFunction::EmitCall(QualType CalleeType,
6197 LValue CodeGenFunction::
6220 RValue CodeGenFunction::convertTempToRValue(Address addr,
6235 void CodeGenFunction::SetFPAccuracy(llvm::Value *Val, float Accuracy) {
6246 void CodeGenFunction::SetSqrtFPAccuracy(llvm::Value *Val) {
6267 void CodeGenFunction::SetDivFPAccuracy(llvm::Value *Val) {
6295 static LValueOrRValue emitPseudoObjectExpr(CodeGenFunction &CGF,
6299 SmallVector<CodeGenFunction::OpaqueValueMappingData, 4> opaques;
6321 typedef CodeGenFunction::OpaqueValueMappingData OVMA;
6324 CodeGenFunction::hasAggregateEvaluationKind(ov->getType())) {
6367 RValue CodeGenFunction::EmitPseudoObjectRValue(const PseudoObjectExpr *E,
6372 LValue CodeGenFunction::EmitPseudoObjectLValue(const PseudoObjectExpr *E) {