Home
last modified time | relevance | path

Searched refs:CodeGenFunction (Results 1 – 25 of 51) sorted by relevance

123

/external/clang/lib/CodeGen/
DCGCXXABI.h38 class CodeGenFunction; variable
51 ImplicitParamDecl *&getThisDecl(CodeGenFunction &CGF) { in getThisDecl()
54 llvm::Value *&getThisValue(CodeGenFunction &CGF) { in getThisValue()
59 void ErrorUnsupportedABI(CodeGenFunction &CGF, StringRef S);
64 ImplicitParamDecl *&getStructorImplicitParamDecl(CodeGenFunction &CGF) { in getStructorImplicitParamDecl()
67 llvm::Value *&getStructorImplicitParamValue(CodeGenFunction &CGF) { in getStructorImplicitParamValue()
73 void EmitThisParam(CodeGenFunction &CGF);
138 CodeGenFunction &CGF, const Expr *E, llvm::Value *&This,
143 EmitMemberDataPointerAddress(CodeGenFunction &CGF, const Expr *E,
149 virtual llvm::Value *EmitMemberPointerConversion(CodeGenFunction &CGF,
[all …]
DCGOpenMPRuntime.h43 class CodeGenFunction; variable
46 typedef llvm::function_ref<void(CodeGenFunction &)> RegionCodeGenTy;
229 llvm::Value *emitUpdateLocation(CodeGenFunction &CGF, SourceLocation Loc,
264 virtual llvm::Value *emitThreadIDAddress(CodeGenFunction &CGF,
269 llvm::Value *getThreadID(CodeGenFunction &CGF, SourceLocation Loc);
289 void emitThreadPrivateVarInit(CodeGenFunction &CGF, llvm::Value *VDAddr,
329 void functionFinished(CodeGenFunction &CGF);
338 virtual void emitParallelCall(CodeGenFunction &CGF, SourceLocation Loc,
348 virtual void emitSerialCall(CodeGenFunction &CGF, SourceLocation Loc,
356 virtual void emitCriticalRegion(CodeGenFunction &CGF, StringRef CriticalName,
[all …]
DCGObjCRuntime.h36 class CodeGenFunction; variable
85 LValue EmitValueForIvarAtOffset(CodeGen::CodeGenFunction &CGF,
98 void EmitTryCatchStmt(CodeGenFunction &CGF,
107 void EmitAtSynchronizedStmt(CodeGenFunction &CGF,
122 virtual llvm::Value *GetSelector(CodeGenFunction &CGF,
126 virtual llvm::Value *GetSelector(CodeGenFunction &CGF,
153 GenerateMessageSend(CodeGen::CodeGenFunction &CGF,
169 GenerateMessageSendSuper(CodeGen::CodeGenFunction &CGF,
182 virtual llvm::Value *GenerateProtocolRef(CodeGenFunction &CGF,
221 virtual llvm::Value *GetClass(CodeGenFunction &CGF,
[all …]
DCGStmtOpenMP.cpp33 static void EmitOMPIfClause(CodeGenFunction &CGF, const Expr *Cond, in EmitOMPIfClause()
35 CodeGenFunction::LexicalScope ConditionScope(CGF, Cond->getSourceRange()); in EmitOMPIfClause()
72 void CodeGenFunction::EmitOMPAggregateAssign( in EmitOMPAggregateAssign()
121 void CodeGenFunction::EmitOMPCopy(CodeGenFunction &CGF, in EmitOMPCopy()
140 CodeGenFunction::OMPPrivateScope Remap(CGF); in EmitOMPCopy()
152 CodeGenFunction::OMPPrivateScope Remap(CGF); in EmitOMPCopy()
161 bool CodeGenFunction::EmitOMPFirstprivateClause(const OMPExecutableDirective &D, in EmitOMPFirstprivateClause()
239 void CodeGenFunction::EmitOMPPrivateClause( in EmitOMPPrivateClause()
241 CodeGenFunction::OMPPrivateScope &PrivateScope) { in EmitOMPPrivateClause()
266 bool CodeGenFunction::EmitOMPCopyinClause(const OMPExecutableDirective &D) { in EmitOMPCopyinClause()
[all …]
DCGObjC.cpp33 tryEmitARCRetainScalarExpr(CodeGenFunction &CGF, const Expr *e);
34 static RValue AdjustRelatedResultType(CodeGenFunction &CGF,
48 llvm::Value *CodeGenFunction::EmitObjCStringLiteral(const ObjCStringLiteral *E) in EmitObjCStringLiteral()
61 CodeGenFunction::EmitObjCBoxedExpr(const ObjCBoxedExpr *E) { in EmitObjCBoxedExpr()
86 llvm::Value *CodeGenFunction::EmitObjCCollectionLiteral(const Expr *E, in EmitObjCCollectionLiteral()
198 llvm::Value *CodeGenFunction::EmitObjCArrayLiteral(const ObjCArrayLiteral *E) { in EmitObjCArrayLiteral()
202 llvm::Value *CodeGenFunction::EmitObjCDictionaryLiteral( in EmitObjCDictionaryLiteral()
208 llvm::Value *CodeGenFunction::EmitObjCSelectorExpr(const ObjCSelectorExpr *E) { in EmitObjCSelectorExpr()
216 llvm::Value *CodeGenFunction::EmitObjCProtocolExpr(const ObjCProtocolExpr *E) { in EmitObjCProtocolExpr()
223 static RValue AdjustRelatedResultType(CodeGenFunction &CGF, in AdjustRelatedResultType()
[all …]
DCGCXXABI.cpp22 void CGCXXABI::ErrorUnsupportedABI(CodeGenFunction &CGF, StringRef S) { in ErrorUnsupportedABI()
76 CodeGenFunction &CGF, const Expr *E, llvm::Value *&This, in EmitLoadOfMemberFunctionPointer()
90 CGCXXABI::EmitMemberDataPointerAddress(CodeGenFunction &CGF, const Expr *E, in EmitMemberDataPointerAddress()
98 llvm::Value *CGCXXABI::EmitMemberPointerConversion(CodeGenFunction &CGF, in EmitMemberPointerConversion()
111 CGCXXABI::EmitMemberPointerComparison(CodeGenFunction &CGF, in EmitMemberPointerComparison()
121 CGCXXABI::EmitMemberPointerIsNotNull(CodeGenFunction &CGF, in EmitMemberPointerIsNotNull()
153 void CGCXXABI::buildThisParam(CodeGenFunction &CGF, FunctionArgList &params) { in buildThisParam()
166 void CGCXXABI::EmitThisParam(CodeGenFunction &CGF) { in EmitThisParam()
174 void CGCXXABI::EmitReturnFromThunk(CodeGenFunction &CGF, in EmitReturnFromThunk()
190 llvm::Value *CGCXXABI::InitializeArrayCookie(CodeGenFunction &CGF, in InitializeArrayCookie()
[all …]
DCGDecl.cpp34 void CodeGenFunction::EmitDecl(const Decl &D) { in EmitDecl()
127 void CodeGenFunction::EmitVarDecl(const VarDecl &D) { in EmitVarDecl()
277 CodeGenFunction::AddInitializerToStaticVarDecl(const VarDecl &D, in AddInitializerToStaticVarDecl()
336 void CodeGenFunction::EmitStaticVarDecl(const VarDecl &D, in EmitStaticVarDecl()
400 CodeGenFunction::Destroyer *destroyer, in DestroyObject()
407 CodeGenFunction::Destroyer *destroyer;
410 void Emit(CodeGenFunction &CGF, Flags flags) override { in Emit()
429 void Emit(CodeGenFunction &CGF, Flags flags) override { in Emit()
455 void Emit(CodeGenFunction &CGF, Flags flags) override { in Emit()
466 void Emit(CodeGenFunction &CGF, Flags flags) override { in Emit()
[all …]
DCGException.cpp92 static const EHPersonality &get(CodeGenFunction &CGF) { in get()
346 static llvm::Constant *getCatchAllValue(CodeGenFunction &CGF) { in getCatchAllValue()
357 void Emit(CodeGenFunction &CGF, Flags flags) override { in Emit()
367 void CodeGenFunction::EmitAnyExprToExn(const Expr *e, llvm::Value *addr) { in EmitAnyExprToExn()
392 llvm::Value *CodeGenFunction::getExceptionSlot() { in getExceptionSlot()
398 llvm::Value *CodeGenFunction::getEHSelectorSlot() { in getEHSelectorSlot()
404 llvm::Value *CodeGenFunction::getExceptionFromSlot() { in getExceptionFromSlot()
408 llvm::Value *CodeGenFunction::getSelectorFromSlot() { in getSelectorFromSlot()
412 void CodeGenFunction::EmitCXXThrowExpr(const CXXThrowExpr *E, in EmitCXXThrowExpr()
433 void CodeGenFunction::EmitStartEHSpec(const Decl *D) { in EmitStartEHSpec()
[all …]
DTargetInfo.h38 class CodeGenFunction; variable
97 virtual bool initDwarfEHRegSizeTable(CodeGen::CodeGenFunction &CGF, in initDwarfEHRegSizeTable()
107 virtual llvm::Value *decodeReturnAddress(CodeGen::CodeGenFunction &CGF, in decodeReturnAddress()
117 virtual llvm::Value *encodeReturnAddress(CodeGen::CodeGenFunction &CGF, in encodeReturnAddress()
127 virtual llvm::Type *adjustInlineAsmType(CodeGen::CodeGenFunction &CGF, in adjustInlineAsmType()
135 CodeGen::CodeGenFunction &CGF, CodeGen::LValue ReturnValue, in addReturnRegisterOutputs()
DCGExpr.cpp42 llvm::Value *CodeGenFunction::EmitCastToVoidPtr(llvm::Value *value) { in EmitCastToVoidPtr()
56 llvm::AllocaInst *CodeGenFunction::CreateTempAlloca(llvm::Type *Ty, in CreateTempAlloca()
63 void CodeGenFunction::InitTempAlloca(llvm::AllocaInst *Var, in InitTempAlloca()
70 llvm::AllocaInst *CodeGenFunction::CreateIRTemp(QualType Ty, in CreateIRTemp()
79 llvm::AllocaInst *CodeGenFunction::CreateMemTemp(QualType Ty, in CreateMemTemp()
90 llvm::Value *CodeGenFunction::EvaluateExprAsBool(const Expr *E) { in EvaluateExprAsBool()
106 void CodeGenFunction::EmitIgnoredExpr(const Expr *E) { in EmitIgnoredExpr()
118 RValue CodeGenFunction::EmitAnyExpr(const Expr *E, in EmitAnyExpr()
137 RValue CodeGenFunction::EmitAnyExprToTemp(const Expr *E) { in EmitAnyExprToTemp()
147 void CodeGenFunction::EmitAnyExprToMem(const Expr *E, in EmitAnyExprToMem()
[all …]
DCodeGenFunction.cpp36 CodeGenFunction::CodeGenFunction(CodeGenModule &cgm, bool suppressNewContext) in CodeGenFunction() function in CodeGenFunction
79 CodeGenFunction::~CodeGenFunction() { in ~CodeGenFunction()
93 LValue CodeGenFunction::MakeNaturalAlignAddrLValue(llvm::Value *V, QualType T) { in MakeNaturalAlignAddrLValue()
105 llvm::Type *CodeGenFunction::ConvertTypeForMem(QualType T) { in ConvertTypeForMem()
109 llvm::Type *CodeGenFunction::ConvertType(QualType T) { in ConvertType()
113 TypeEvaluationKind CodeGenFunction::getEvaluationKind(QualType type) { in getEvaluationKind()
165 llvm::DebugLoc CodeGenFunction::EmitReturnBlock() { in EmitReturnBlock()
209 static void EmitIfUsed(CodeGenFunction &CGF, llvm::BasicBlock *BB) { in EmitIfUsed()
216 void CodeGenFunction::FinishFunction(SourceLocation EndLoc) { in FinishFunction()
333 bool CodeGenFunction::ShouldInstrumentFunction() { in ShouldInstrumentFunction()
[all …]
DCGOpenMPRuntime.cpp32 class CGOpenMPRegionInfo : public CodeGenFunction::CGCapturedStmtInfo {
62 virtual void EmitBody(CodeGenFunction &CGF, const Stmt *S) override;
66 virtual LValue getThreadIDVariableLValue(CodeGenFunction &CGF);
122 LValue getThreadIDVariableLValue(CodeGenFunction &CGF) override;
143 CGOpenMPInlinedRegionInfo(CodeGenFunction::CGCapturedStmtInfo *OldCSI, in CGOpenMPInlinedRegionInfo()
188 CodeGenFunction::CGCapturedStmtInfo *getOldCSI() const { return OldCSI; } in getOldCSI()
197 CodeGenFunction::CGCapturedStmtInfo *OldCSI;
203 CodeGenFunction &CGF;
210 InlinedOpenMPRegionRAII(CodeGenFunction &CGF, const RegionCodeGenTy &CodeGen) in InlinedOpenMPRegionRAII()
227 LValue CGOpenMPRegionInfo::getThreadIDVariableLValue(CodeGenFunction &CGF) { in getThreadIDVariableLValue()
[all …]
DCGClass.cpp84 CodeGenFunction::GetAddressOfDirectBaseInCompleteClass(llvm::Value *This, in GetAddressOfDirectBaseInCompleteClass()
114 ApplyNonVirtualAndVirtualOffset(CodeGenFunction &CGF, llvm::Value *ptr, in ApplyNonVirtualAndVirtualOffset()
138 llvm::Value *CodeGenFunction::GetAddressOfBaseClass( in GetAddressOfBaseClass()
243 CodeGenFunction::GetAddressOfDerivedClass(llvm::Value *Value, in GetAddressOfDerivedClass()
300 llvm::Value *CodeGenFunction::GetVTTParameter(GlobalDecl GD, in GetVTTParameter()
357 void Emit(CodeGenFunction &CGF, Flags flags) override { in Emit()
395 static void EmitBaseInitializer(CodeGenFunction &CGF, in EmitBaseInitializer()
441 static void EmitAggMemberInitializer(CodeGenFunction &CGF, in EmitAggMemberInitializer()
543 static void EmitMemberInitializer(CodeGenFunction &CGF, in EmitMemberInitializer()
605 void CodeGenFunction::EmitInitializerForField( in EmitInitializerForField()
[all …]
DCGStmt.cpp35 void CodeGenFunction::EmitStopPoint(const Stmt *S) { in EmitStopPoint()
45 void CodeGenFunction::EmitStmt(const Stmt *S) { in EmitStmt()
243 bool CodeGenFunction::EmitSimpleStmt(const Stmt *S) { in EmitSimpleStmt()
266 llvm::Value* CodeGenFunction::EmitCompoundStmt(const CompoundStmt &S, bool GetLast, in EmitCompoundStmt()
278 CodeGenFunction::EmitCompoundStmtWithoutScope(const CompoundStmt &S, in EmitCompoundStmtWithoutScope()
317 void CodeGenFunction::SimplifyForwardingBlocks(llvm::BasicBlock *BB) { in SimplifyForwardingBlocks()
339 void CodeGenFunction::EmitBlock(llvm::BasicBlock *BB, bool IsFinished) { in EmitBlock()
359 void CodeGenFunction::EmitBranch(llvm::BasicBlock *Target) { in EmitBranch()
376 void CodeGenFunction::EmitBlockAfterUses(llvm::BasicBlock *block) { in EmitBlockAfterUses()
392 CodeGenFunction::JumpDest
[all …]
DCGDeclCXX.cpp26 static void EmitDeclInit(CodeGenFunction &CGF, const VarDecl &D, in EmitDeclInit()
66 static void EmitDeclDestroy(CodeGenFunction &CGF, const VarDecl &D, in EmitDeclDestroy()
106 function = CodeGenFunction(CGM) in EmitDeclDestroy()
117 static void EmitDeclInvariant(CodeGenFunction &CGF, const VarDecl &D, in EmitDeclInvariant()
135 void CodeGenFunction::EmitCXXGlobalVarDeclInit(const VarDecl &D, in EmitCXXGlobalVarDeclInit()
188 llvm::Constant *CodeGenFunction::createAtExitStub(const VarDecl &VD, in createAtExitStub()
201 CodeGenFunction CGF(CGM); in createAtExitStub()
219 void CodeGenFunction::registerGlobalDtorWithAtExit(const VarDecl &VD, in registerGlobalDtorWithAtExit()
237 void CodeGenFunction::EmitCXXGuardedInit(const VarDecl &D, in EmitCXXGuardedInit()
318 CodeGenFunction(*this).GenerateCXXGlobalVarDeclInitFunc(Fn, D, Addr, in EmitCXXGlobalVarDeclInitFunc()
[all …]
DItaniumCXXABI.cpp77 EmitLoadOfMemberFunctionPointer(CodeGenFunction &CGF,
84 EmitMemberDataPointerAddress(CodeGenFunction &CGF, const Expr *E,
89 llvm::Value *EmitMemberPointerConversion(CodeGenFunction &CGF,
104 llvm::Value *EmitMemberPointerComparison(CodeGenFunction &CGF,
109 llvm::Value *EmitMemberPointerIsNotNull(CodeGenFunction &CGF,
113 void emitVirtualObjectDelete(CodeGenFunction &CGF, const CXXDeleteExpr *DE,
117 void emitRethrow(CodeGenFunction &CGF, bool isNoReturn) override;
118 void emitThrow(CodeGenFunction &CGF, const CXXThrowExpr *E) override;
120 void emitBeginCatch(CodeGenFunction &CGF, const CXXCatchStmt *C) override;
123 emitTerminateForUnexpectedException(CodeGenFunction &CGF,
[all …]
DCodeGenFunction.h99 class CodeGenFunction : public CodeGenTypeCache {
100 CodeGenFunction(const CodeGenFunction &) = delete;
101 void operator=(const CodeGenFunction &) = delete;
212 virtual void EmitBody(CodeGenFunction &CGF, const Stmt *S) { in EmitBody()
249 CodeGenFunction *CGF;
251 SanitizerScope(CodeGenFunction *CGF);
352 void enter(CodeGenFunction &CGF, const Stmt *Finally,
355 void exit(CodeGenFunction &CGF);
452 CodeGenFunction& CGF;
456 explicit RunCleanupsScope(CodeGenFunction &CGF) in RunCleanupsScope()
[all …]
DCGCUDARuntime.h25 class CodeGenFunction; variable
39 virtual RValue EmitCUDAKernelCallExpr(CodeGenFunction &CGF,
43 virtual void EmitDeviceStubBody(CodeGenFunction &CGF,
DCGCleanup.cpp35 DominatingValue<RValue>::saved_type::save(CodeGenFunction &CGF, RValue rv) { in save()
50 CodeGenFunction::ComplexPairTy V = rv.getComplexVal(); in save()
75 RValue DominatingValue<RValue>::saved_type::restore(CodeGenFunction &CGF) { in restore()
254 void CodeGenFunction::initFullExprCleanup() { in initFullExprCleanup()
280 static void ResolveAllBranchFixups(CodeGenFunction &CGF, in ResolveAllBranchFixups()
318 static llvm::SwitchInst *TransitionToCleanupSwitch(CodeGenFunction &CGF, in TransitionToCleanupSwitch()
338 void CodeGenFunction::ResolveBranchFixups(llvm::BasicBlock *Block) { in ResolveBranchFixups()
377 void CodeGenFunction::PopCleanupBlocks(EHScopeStack::stable_iterator Old) { in PopCleanupBlocks()
396 CodeGenFunction::PopCleanupBlocks(EHScopeStack::stable_iterator Old, in PopCleanupBlocks()
420 static llvm::BasicBlock *CreateNormalEntry(CodeGenFunction &CGF, in CreateNormalEntry()
[all …]
DCGBuilder.h18 class CodeGenFunction; variable
28 explicit CGBuilderInserter(CodeGenFunction *CGF) : CGF(CGF) {} in CGBuilderInserter()
38 CodeGenFunction *CGF;
DMicrosoftCXXABI.cpp74 void emitVirtualObjectDelete(CodeGenFunction &CGF, const CXXDeleteExpr *DE,
78 void emitRethrow(CodeGenFunction &CGF, bool isNoReturn) override;
79 void emitThrow(CodeGenFunction &CGF, const CXXThrowExpr *E) override;
81 void emitBeginCatch(CodeGenFunction &CGF, const CXXCatchStmt *C) override;
91 void EmitBadTypeidCall(CodeGenFunction &CGF) override;
92 llvm::Value *EmitTypeid(CodeGenFunction &CGF, QualType SrcRecordTy,
99 llvm::Value *EmitDynamicCastCall(CodeGenFunction &CGF, llvm::Value *Value,
104 llvm::Value *EmitDynamicCastToVoid(CodeGenFunction &CGF, llvm::Value *Value,
108 bool EmitBadCastCall(CodeGenFunction &CGF) override;
111 GetVirtualBaseClassOffset(CodeGenFunction &CGF, llvm::Value *This,
[all …]
DCGBlocks.cpp53 return CodeGenFunction(CGM).GenerateCopyHelperFunction(blockInfo); in buildCopyHelper()
59 return CodeGenFunction(CGM).GenerateDestroyHelperFunction(blockInfo); in buildDisposeHelper()
273 CodeGenFunction *CGF, in tryCaptureAsConstant()
337 static void computeBlockInfo(CodeGenModule &CGM, CodeGenFunction *CGF, in computeBlockInfo()
572 static void enterBlockScope(CodeGenFunction &CGF, BlockDecl *block) { in enterBlockScope()
613 CodeGenFunction::Destroyer *destroyer; in enterBlockScope()
618 destroyer = CodeGenFunction::destroyARCStrongImprecise; in enterBlockScope()
647 void CodeGenFunction::enterNonTrivialFullExpression(const ExprWithCleanups *E) { in enterNonTrivialFullExpression()
674 void CodeGenFunction::destroyBlockInfos(CGBlockInfo *head) { in destroyBlockInfos()
684 llvm::Value *CodeGenFunction::EmitBlockLiteral(const BlockExpr *blockExpr) { in EmitBlockLiteral()
[all …]
DCGExprCXX.cpp28 CodeGenFunction &CGF, const CXXMethodDecl *MD, llvm::Value *Callee, in commonEmitCXXMemberOrOperatorCall()
43 isa<CXXConstructorDecl>(MD) ? CodeGenFunction::TCK_ConstructorCall in commonEmitCXXMemberOrOperatorCall()
44 : CodeGenFunction::TCK_MemberCall, in commonEmitCXXMemberOrOperatorCall()
72 RValue CodeGenFunction::EmitCXXMemberOrOperatorCall( in EmitCXXMemberOrOperatorCall()
85 RValue CodeGenFunction::EmitCXXStructorCall( in EmitCXXStructorCall()
106 RValue CodeGenFunction::EmitCXXMemberCallExpr(const CXXMemberCallExpr *CE, in EmitCXXMemberCallExpr()
132 RValue CodeGenFunction::EmitCXXMemberOrOperatorMemberCallExpr( in EmitCXXMemberOrOperatorMemberCallExpr()
284 CodeGenFunction::EmitCXXMemberPointerCallExpr(const CXXMemberCallExpr *E, in EmitCXXMemberPointerCallExpr()
334 CodeGenFunction::EmitCXXOperatorMemberCallExpr(const CXXOperatorCallExpr *E, in EmitCXXOperatorMemberCallExpr()
344 RValue CodeGenFunction::EmitCUDAKernelCallExpr(const CUDAKernelCallExpr *E, in EmitCUDAKernelCallExpr()
[all …]
DCGObjCRuntime.cpp86 LValue CGObjCRuntime::EmitValueForIvarAtOffset(CodeGen::CodeGenFunction &CGF, in EmitValueForIvarAtOffset()
161 void Emit(CodeGenFunction &CGF, Flags flags) override { in Emit()
173 void CGObjCRuntime::EmitTryCatchStmt(CodeGenFunction &CGF, in EmitTryCatchStmt()
179 CodeGenFunction::JumpDest Cont; in EmitTryCatchStmt()
183 CodeGenFunction::FinallyInfo FinallyInfo; in EmitTryCatchStmt()
241 CodeGenFunction::LexicalScope cleanups(CGF, Handler.Body->getSourceRange()); in EmitTryCatchStmt()
306 void Emit(CodeGenFunction &CGF, Flags flags) override { in Emit()
312 void CGObjCRuntime::EmitAtSynchronizedStmt(CodeGenFunction &CGF, in EmitAtSynchronizedStmt()
316 CodeGenFunction::RunCleanupsScope cleanups(CGF); in EmitAtSynchronizedStmt()
DEHScopeStack.h29 class CodeGenFunction; variable
60 static saved_type save(CodeGenFunction &CGF, type value) { return value; } in save()
61 static type restore(CodeGenFunction &CGF, saved_type value) { return value; } in restore()
182 virtual void Emit(CodeGenFunction &CGF, Flags flags) = 0;
192 T restore(CodeGenFunction &CGF, llvm::index_sequence<Is...>) {
198 void Emit(CodeGenFunction &CGF, Flags flags) override {

123