Lines Matching refs:CodeGenFunction
22 #include "CodeGenFunction.h"
75 CodeGenFunction::CreateTempAllocaWithoutCast(llvm::Type *Ty, CharUnits Align,
85 RawAddress CodeGenFunction::CreateTempAlloca(llvm::Type *Ty, CharUnits Align,
116 llvm::AllocaInst *CodeGenFunction::CreateTempAlloca(llvm::Type *Ty,
135 RawAddress CodeGenFunction::CreateDefaultAlignTempAlloca(llvm::Type *Ty,
142 RawAddress CodeGenFunction::CreateIRTemp(QualType Ty, const Twine &Name) {
147 RawAddress CodeGenFunction::CreateMemTemp(QualType Ty, const Twine &Name,
153 RawAddress CodeGenFunction::CreateMemTemp(QualType Ty, CharUnits Align,
170 RawAddress CodeGenFunction::CreateMemTempWithoutCast(QualType Ty,
176 RawAddress CodeGenFunction::CreateMemTempWithoutCast(QualType Ty,
184 llvm::Value *CodeGenFunction::EvaluateExprAsBool(const Expr *E) {
203 void CodeGenFunction::EmitIgnoredExpr(const Expr *E) {
225 RValue CodeGenFunction::EmitAnyExpr(const Expr *E,
244 RValue CodeGenFunction::EmitAnyExprToTemp(const Expr *E) {
254 void CodeGenFunction::EmitAnyExprToMem(const Expr *E,
285 pushTemporaryCleanup(CodeGenFunction &CGF, const MaterializeTemporaryExpr *M,
317 CodeGenFunction::Destroyer *Destroy;
324 Destroy = Precise ? &CodeGenFunction::destroyARCStrongPrecise
325 : &CodeGenFunction::destroyARCStrongImprecise;
330 Destroy = &CodeGenFunction::destroyARCWeak;
368 CleanupFn = CodeGenFunction(CGF.CGM).generateDestroyHelper(
370 CodeGenFunction::destroyCXXObject, CGF.getLangOpts().Exceptions,
385 CodeGenFunction::destroyCXXObject,
392 CodeGenFunction::destroyCXXObject,
401 static RawAddress createReferenceTemporary(CodeGenFunction &CGF,
452 LValue CodeGenFunction::
626 CodeGenFunction::EmitReferenceBindingToExpr(const Expr *E) {
648 unsigned CodeGenFunction::getAccessedFieldNo(unsigned Idx,
663 bool CodeGenFunction::isNullPointerAllowed(TypeCheckKind TCK) {
668 bool CodeGenFunction::isVptrCheckRequired(TypeCheckKind TCK, QualType Ty) {
676 bool CodeGenFunction::sanitizePerformTypeCheck() const {
683 void CodeGenFunction::EmitTypeCheck(TypeCheckKind TCK, SourceLocation Loc,
883 llvm::Value *CodeGenFunction::LoadPassedObjectSize(const Expr *E,
924 static llvm::Value *getArrayIndexingBound(CodeGenFunction &CGF,
941 CodeGenFunction::SanitizerScope SanScope(&CGF);
954 CodeGenFunction::SanitizerScope SanScope(&CGF);
1075 static bool getGEPIndicesToField(CodeGenFunction &CGF, const RecordDecl *RD,
1114 llvm::Value *CodeGenFunction::EmitCountedByFieldExpr(
1151 const FieldDecl *CodeGenFunction::FindCountedByField(const FieldDecl *FD) {
1167 void CodeGenFunction::EmitBoundsCheck(const Expr *E, const Expr *Base,
1181 void CodeGenFunction::EmitBoundsCheckImpl(const Expr *E, llvm::Value *Bound,
1205 CodeGenFunction::ComplexPairTy CodeGenFunction::
1242 CodeGenFunction *CGF) {
1258 CodeGenFunction &CGF) {
1307 CodeGenFunction::CFITCK_UnrelatedCast,
1387 Address CodeGenFunction::EmitPointerWithAlignment(
1397 llvm::Value *CodeGenFunction::EmitNonNullRValueCheck(RValue RV, QualType T) {
1404 RValue CodeGenFunction::GetUndefRValue(QualType Ty) {
1430 RValue CodeGenFunction::EmitUnsupportedRValue(const Expr *E,
1436 LValue CodeGenFunction::EmitUnsupportedLValue(const Expr *E,
1445 bool CodeGenFunction::IsWrappedCXXThis(const Expr *Obj) {
1468 LValue CodeGenFunction::EmitCheckedLValue(const Expr *E, TypeCheckKind TCK) {
1503 LValue CodeGenFunction::EmitLValue(const Expr *E,
1519 LValue CodeGenFunction::EmitLValueHelper(const Expr *E,
1726 CodeGenFunction::ConstantEmission
1727 CodeGenFunction::tryEmitAsConstant(DeclRefExpr *refExpr) {
1812 static DeclRefExpr *tryToConvertMemberExprToDeclRefExpr(CodeGenFunction &CGF,
1824 CodeGenFunction::ConstantEmission
1825 CodeGenFunction::tryEmitAsConstant(const MemberExpr *ME) {
1831 llvm::Value *CodeGenFunction::emitScalarConstant(
1832 const CodeGenFunction::ConstantEmission &Constant, Expr *E) {
1841 llvm::Value *CodeGenFunction::EmitLoadOfScalar(LValue lvalue,
1861 static bool getRangeForType(CodeGenFunction &CGF, QualType Ty,
1880 llvm::MDNode *CodeGenFunction::getRangeForLoadFromType(QualType Ty) {
1890 bool CodeGenFunction::EmitScalarRangeCheck(llvm::Value *Value, QualType Ty,
1937 llvm::Value *CodeGenFunction::EmitLoadOfScalar(Address Addr, bool Volatile,
2021 llvm::Value *CodeGenFunction::EmitToMemory(llvm::Value *Value, QualType Ty) {
2044 llvm::Value *CodeGenFunction::EmitFromMemory(llvm::Value *Value, QualType Ty) {
2068 CodeGenFunction &CGF,
2093 bool isInit, CodeGenFunction &CGF) {
2101 void CodeGenFunction::EmitStoreOfScalar(llvm::Value *Value, Address Addr,
2150 void CodeGenFunction::EmitStoreOfScalar(llvm::Value *value, LValue lvalue,
2165 CodeGenFunction &CGF) {
2172 RValue CodeGenFunction::EmitLoadOfAnyValue(LValue LV, AggValueSlot Slot,
2190 RValue CodeGenFunction::EmitLoadOfLValue(LValue LV, SourceLocation Loc) {
2252 RValue CodeGenFunction::EmitLoadOfBitfieldLValue(LValue LV,
2289 RValue CodeGenFunction::EmitLoadOfExtVectorElementLValue(LValue LV) {
2324 Address CodeGenFunction::EmitExtVectorElementLValue(LValue LV) {
2342 RValue CodeGenFunction::EmitLoadOfGlobalRegLValue(LValue LV) {
2366 void CodeGenFunction::EmitStoreThroughLValue(RValue Src, LValue Dst,
2488 void CodeGenFunction::EmitStoreThroughBitfieldLValue(RValue Src, LValue Dst,
2566 void CodeGenFunction::EmitStoreThroughExtVectorComponentLValue(RValue Src,
2641 void CodeGenFunction::EmitStoreThroughGlobalRegLValue(RValue Src, LValue Dst) {
2764 CodeGenFunction &CGF, const VarDecl *VD, QualType T, Address Addr,
2767 Addr = CodeGenFunction::OMPBuilderCBHelpers::getAddrOfThreadPrivate(
2777 static Address emitDeclTargetVarDeclLValue(CodeGenFunction &CGF,
2799 CodeGenFunction::EmitLoadOfReference(LValue RefLVal,
2810 LValue CodeGenFunction::EmitLoadOfReferenceLValue(LValue RefLVal) {
2819 Address CodeGenFunction::EmitLoadOfPointer(Address Ptr,
2829 LValue CodeGenFunction::EmitLoadOfPointerLValue(Address PtrAddr,
2837 static LValue EmitGlobalVarDeclLValue(CodeGenFunction &CGF,
2888 static LValue EmitFunctionDeclLValue(CodeGenFunction &CGF, const Expr *E,
2897 static LValue EmitCapturedFieldLValue(CodeGenFunction &CGF, const FieldDecl *FD,
2934 static bool canEmitSpuriousReferenceToVariable(CodeGenFunction &CGF,
2981 LValue CodeGenFunction::EmitDeclRefLValue(const DeclRefExpr *E) {
3193 LValue CodeGenFunction::EmitUnaryOpLValue(const UnaryOperator *E) {
3203 assert(!T.isNull() && "CodeGenFunction::EmitUnaryOpLValue: Illegal type");
3260 LValue CodeGenFunction::EmitStringLiteralLValue(const StringLiteral *E) {
3265 LValue CodeGenFunction::EmitObjCEncodeExprLValue(const ObjCEncodeExpr *E) {
3270 LValue CodeGenFunction::EmitPredefinedLValue(const PredefinedExpr *E) {
3307 llvm::Constant *CodeGenFunction::EmitCheckTypeDescriptor(QualType T) {
3349 llvm::Value *CodeGenFunction::EmitCheckValue(llvm::Value *V) {
3387 llvm::Constant *CodeGenFunction::EmitCheckSourceLocation(SourceLocation Loc) {
3474 static void emitCheckHandlerCall(CodeGenFunction &CGF,
3522 void CodeGenFunction::EmitCheck(
3644 void CodeGenFunction::EmitCfiSlowPathCheck(
3691 void CodeGenFunction::EmitCfiCheckStub() {
3730 void CodeGenFunction::EmitCfiCheckFail() {
3818 void CodeGenFunction::EmitUnreachable(SourceLocation Loc) {
3829 void CodeGenFunction::EmitTrapCheck(llvm::Value *Checked,
3874 llvm::CallInst *CodeGenFunction::EmitTrapCall(llvm::Intrinsic::ID IntrID) {
3887 Address CodeGenFunction::EmitArrayToPointerDecay(const Expr *E,
3938 static llvm::Value *emitArraySubscriptGEP(CodeGenFunction &CGF,
3948 CodeGenFunction::NotSubtraction, loc,
3955 static Address emitArraySubscriptGEP(CodeGenFunction &CGF, Address addr,
3963 CodeGenFunction::NotSubtraction, loc,
4010 static Address wrapWithBPFPreserveStaticOffset(CodeGenFunction &CGF,
4023 static bool IsPreserveAIArrayBase(CodeGenFunction &CGF, const Expr *ArrayBase) {
4057 static Address emitArraySubscriptGEP(CodeGenFunction &CGF, Address addr,
4108 static bool getFieldOffsetInBits(CodeGenFunction &CGF, const RecordDecl *RD,
4139 static std::optional<int64_t> getOffsetDifferenceInBits(CodeGenFunction &CGF,
4162 LValue CodeGenFunction::EmitArraySubscriptExpr(const ArraySubscriptExpr *E,
4358 LValue CodeGenFunction::EmitMatrixSubscriptExpr(const MatrixSubscriptExpr *E) {
4375 static Address emitOMPArraySectionBase(CodeGenFunction &CGF, const Expr *Base,
4414 LValue CodeGenFunction::EmitArraySectionExpr(const ArraySectionExpr *E,
4577 LValue CodeGenFunction::
4635 LValue CodeGenFunction::EmitMemberExpr(const MemberExpr *E) {
4686 LValue CodeGenFunction::EmitLValueForLambdaField(const FieldDecl *Field,
4725 LValue CodeGenFunction::EmitLValueForLambdaField(const FieldDecl *Field) {
4731 unsigned CodeGenFunction::getDebugInfoFIndex(const RecordDecl *Rec,
4748 static Address emitAddrOfZeroSizeField(CodeGenFunction &CGF, Address Base,
4762 static Address emitAddrOfFieldStorage(CodeGenFunction &CGF, Address base,
4775 static Address emitPreserveStructAccess(CodeGenFunction &CGF, LValue base,
4807 LValue CodeGenFunction::EmitLValueForField(LValue base,
4977 CodeGenFunction::EmitLValueForFieldInitialization(LValue Base,
5000 LValue CodeGenFunction::EmitCompoundLiteralLValue(const CompoundLiteralExpr *E){
5027 LValue CodeGenFunction::EmitInitListLValue(const InitListExpr *E) {
5040 static std::optional<LValue> EmitLValueOrThrowExpression(CodeGenFunction &CGF,
5054 CodeGenFunction &CGF, const AbstractConditionalOperator *E) {
5089 ConditionalInfo EmitConditionalBlocks(CodeGenFunction &CGF,
5097 CodeGenFunction::ConditionalEvaluation eval(CGF);
5124 void CodeGenFunction::EmitIgnoredConditionalOperator(
5137 EmitConditionalBlocks(*this, E, [](CodeGenFunction &CGF, const Expr *E) {
5142 LValue CodeGenFunction::EmitConditionalOperatorLValue(
5157 *this, expr, [](CodeGenFunction &CGF, const Expr *E) {
5192 LValue CodeGenFunction::EmitCastLValue(const CastExpr *E) {
5382 LValue CodeGenFunction::EmitOpaqueValueLValue(const OpaqueValueExpr *e) {
5388 CodeGenFunction::getOrCreateOpaqueLValueMapping(const OpaqueValueExpr *e) {
5402 CodeGenFunction::getOrCreateOpaqueRValueMapping(const OpaqueValueExpr *e) {
5415 RValue CodeGenFunction::EmitRValueForField(LValue LV,
5443 RValue CodeGenFunction::EmitCallExpr(const CallExpr *E,
5478 RValue CodeGenFunction::EmitSimpleCallExpr(const CallExpr *E,
5494 static CGCallee EmitDirectCallee(CodeGenFunction &CGF, GlobalDecl GD) {
5546 CGCallee CodeGenFunction::EmitCallee(const Expr *E) {
5599 LValue CodeGenFunction::EmitBinaryOperatorLValue(const BinaryOperator *E) {
5685 LValue CodeGenFunction::EmitCallExprLValue(const CallExpr *E) {
5699 LValue CodeGenFunction::EmitVAArgExprLValue(const VAArgExpr *E) {
5704 LValue CodeGenFunction::EmitCXXConstructLValue(const CXXConstructExpr *E) {
5713 CodeGenFunction::EmitCXXTypeidLValue(const CXXTypeidExpr *E) {
5717 Address CodeGenFunction::EmitCXXUuidofExpr(const CXXUuidofExpr *E) {
5722 LValue CodeGenFunction::EmitCXXUuidofLValue(const CXXUuidofExpr *E) {
5728 CodeGenFunction::EmitCXXBindTemporaryLValue(const CXXBindTemporaryExpr *E) {
5736 LValue CodeGenFunction::EmitObjCMessageExprLValue(const ObjCMessageExpr *E) {
5750 LValue CodeGenFunction::EmitObjCSelectorLValue(const ObjCSelectorExpr *E) {
5756 llvm::Value *CodeGenFunction::EmitIvarOffset(const ObjCInterfaceDecl *Interface,
5762 CodeGenFunction::EmitIvarOffsetAsPointerDiff(const ObjCInterfaceDecl *Interface,
5770 LValue CodeGenFunction::EmitLValueForIvar(QualType ObjectTy,
5778 LValue CodeGenFunction::EmitObjCIvarRefLValue(const ObjCIvarRefExpr *E) {
5802 LValue CodeGenFunction::EmitStmtExprLValue(const StmtExpr *E) {
5809 RValue CodeGenFunction::EmitCall(QualType CalleeType, const CGCallee &OrigCallee,
6050 LValue CodeGenFunction::
6073 RValue CodeGenFunction::convertTempToRValue(Address addr,
6088 void CodeGenFunction::SetFPAccuracy(llvm::Value *Val, float Accuracy) {
6099 void CodeGenFunction::SetSqrtFPAccuracy(llvm::Value *Val) {
6120 void CodeGenFunction::SetDivFPAccuracy(llvm::Value *Val) {
6148 static LValueOrRValue emitPseudoObjectExpr(CodeGenFunction &CGF,
6152 SmallVector<CodeGenFunction::OpaqueValueMappingData, 4> opaques;
6174 typedef CodeGenFunction::OpaqueValueMappingData OVMA;
6177 CodeGenFunction::hasAggregateEvaluationKind(ov->getType())) {
6220 RValue CodeGenFunction::EmitPseudoObjectRValue(const PseudoObjectExpr *E,
6225 LValue CodeGenFunction::EmitPseudoObjectLValue(const PseudoObjectExpr *E) {