Home
last modified time | relevance | path

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

123

/NextBSD/contrib/llvm/tools/clang/lib/CodeGen/
HDCGCXXABI.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 …]
HDCGOpenMPRuntime.h43 class CodeGenFunction; variable
46 typedef llvm::function_ref<void(CodeGenFunction &)> RegionCodeGenTy;
285 llvm::Value *emitUpdateLocation(CodeGenFunction &CGF, SourceLocation Loc,
324 virtual llvm::Value *emitThreadIDAddress(CodeGenFunction &CGF,
329 llvm::Value *getThreadID(CodeGenFunction &CGF, SourceLocation Loc);
349 void emitThreadPrivateVarInit(CodeGenFunction &CGF, llvm::Value *VDAddr,
392 void functionFinished(CodeGenFunction &CGF);
404 virtual void emitParallelCall(CodeGenFunction &CGF, SourceLocation Loc,
413 virtual void emitCriticalRegion(CodeGenFunction &CGF, StringRef CriticalName,
420 virtual void emitMasterRegion(CodeGenFunction &CGF,
[all …]
HDCGObjCRuntime.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 …]
HDCGStmtOpenMP.cpp26 void CodeGenFunction::EmitOMPAggregateAssign( in EmitOMPAggregateAssign()
75 void CodeGenFunction::EmitOMPCopy(CodeGenFunction &CGF, in EmitOMPCopy()
94 CodeGenFunction::OMPPrivateScope Remap(CGF); in EmitOMPCopy()
106 CodeGenFunction::OMPPrivateScope Remap(CGF); in EmitOMPCopy()
115 bool CodeGenFunction::EmitOMPFirstprivateClause(const OMPExecutableDirective &D, in EmitOMPFirstprivateClause()
188 void CodeGenFunction::EmitOMPPrivateClause( in EmitOMPPrivateClause()
190 CodeGenFunction::OMPPrivateScope &PrivateScope) { in EmitOMPPrivateClause()
214 bool CodeGenFunction::EmitOMPCopyinClause(const OMPExecutableDirective &D) { in EmitOMPCopyinClause()
278 bool CodeGenFunction::EmitOMPLastprivateClauseInit( in EmitOMPLastprivateClauseInit()
323 void CodeGenFunction::EmitOMPLastprivateClauseFinal( in EmitOMPLastprivateClauseFinal()
[all …]
HDCGObjC.cpp33 tryEmitARCRetainScalarExpr(CodeGenFunction &CGF, const Expr *e);
34 static RValue AdjustObjCObjectType(CodeGenFunction &CGF,
47 llvm::Value *CodeGenFunction::EmitObjCStringLiteral(const ObjCStringLiteral *E) in EmitObjCStringLiteral()
61 CodeGenFunction::EmitObjCBoxedExpr(const ObjCBoxedExpr *E) { in EmitObjCBoxedExpr()
115 llvm::Value *CodeGenFunction::EmitObjCCollectionLiteral(const Expr *E, in EmitObjCCollectionLiteral()
227 llvm::Value *CodeGenFunction::EmitObjCArrayLiteral(const ObjCArrayLiteral *E) { in EmitObjCArrayLiteral()
231 llvm::Value *CodeGenFunction::EmitObjCDictionaryLiteral( in EmitObjCDictionaryLiteral()
237 llvm::Value *CodeGenFunction::EmitObjCSelectorExpr(const ObjCSelectorExpr *E) { in EmitObjCSelectorExpr()
245 llvm::Value *CodeGenFunction::EmitObjCProtocolExpr(const ObjCProtocolExpr *E) { in EmitObjCProtocolExpr()
253 static RValue AdjustObjCObjectType(CodeGenFunction &CGF, QualType ExpT, in AdjustObjCObjectType()
[all …]
HDCGDecl.cpp35 void CodeGenFunction::EmitDecl(const Decl &D) { in EmitDecl()
129 void CodeGenFunction::EmitVarDecl(const VarDecl &D) { in EmitVarDecl()
281 CodeGenFunction::AddInitializerToStaticVarDecl(const VarDecl &D, in AddInitializerToStaticVarDecl()
340 void CodeGenFunction::EmitStaticVarDecl(const VarDecl &D, in EmitStaticVarDecl()
404 CodeGenFunction::Destroyer *destroyer, in DestroyObject()
411 CodeGenFunction::Destroyer *destroyer;
414 void Emit(CodeGenFunction &CGF, Flags flags) override { in Emit()
433 void Emit(CodeGenFunction &CGF, Flags flags) override { in Emit()
459 void Emit(CodeGenFunction &CGF, Flags flags) override { in Emit()
470 void Emit(CodeGenFunction &CGF, Flags flags) override { in Emit()
[all …]
HDCGCXXABI.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()
152 void CGCXXABI::buildThisParam(CodeGenFunction &CGF, FunctionArgList &params) { in buildThisParam()
165 void CGCXXABI::EmitThisParam(CodeGenFunction &CGF) { in EmitThisParam()
173 void CGCXXABI::EmitReturnFromThunk(CodeGenFunction &CGF, in EmitReturnFromThunk()
189 llvm::Value *CGCXXABI::InitializeArrayCookie(CodeGenFunction &CGF, in InitializeArrayCookie()
[all …]
HDCGException.cpp96 static const EHPersonality &get(CodeGenFunction &CGF) { in get()
350 static llvm::Constant *getCatchAllValue(CodeGenFunction &CGF) { in getCatchAllValue()
361 void Emit(CodeGenFunction &CGF, Flags flags) override { in Emit()
371 void CodeGenFunction::EmitAnyExprToExn(const Expr *e, llvm::Value *addr) { in EmitAnyExprToExn()
396 llvm::Value *CodeGenFunction::getExceptionSlot() { in getExceptionSlot()
402 llvm::Value *CodeGenFunction::getEHSelectorSlot() { in getEHSelectorSlot()
408 llvm::Value *CodeGenFunction::getExceptionFromSlot() { in getExceptionFromSlot()
412 llvm::Value *CodeGenFunction::getSelectorFromSlot() { in getSelectorFromSlot()
416 void CodeGenFunction::EmitCXXThrowExpr(const CXXThrowExpr *E, in EmitCXXThrowExpr()
437 void CodeGenFunction::EmitStartEHSpec(const Decl *D) { in EmitStartEHSpec()
[all …]
HDCGExpr.cpp43 llvm::Value *CodeGenFunction::EmitCastToVoidPtr(llvm::Value *value) { in EmitCastToVoidPtr()
57 llvm::AllocaInst *CodeGenFunction::CreateTempAlloca(llvm::Type *Ty, in CreateTempAlloca()
64 void CodeGenFunction::InitTempAlloca(llvm::AllocaInst *Var, in InitTempAlloca()
71 llvm::AllocaInst *CodeGenFunction::CreateIRTemp(QualType Ty, in CreateIRTemp()
80 llvm::AllocaInst *CodeGenFunction::CreateMemTemp(QualType Ty, in CreateMemTemp()
91 llvm::Value *CodeGenFunction::EvaluateExprAsBool(const Expr *E) { in EvaluateExprAsBool()
107 void CodeGenFunction::EmitIgnoredExpr(const Expr *E) { in EmitIgnoredExpr()
119 RValue CodeGenFunction::EmitAnyExpr(const Expr *E, in EmitAnyExpr()
138 RValue CodeGenFunction::EmitAnyExprToTemp(const Expr *E) { in EmitAnyExprToTemp()
148 void CodeGenFunction::EmitAnyExprToMem(const Expr *E, in EmitAnyExprToMem()
[all …]
HDCGOpenMPRuntime.cpp32 class CGOpenMPRegionInfo : public CodeGenFunction::CGCapturedStmtInfo {
62 virtual void EmitBody(CodeGenFunction &CGF, const Stmt *S) override;
66 virtual LValue getThreadIDVariableLValue(CodeGenFunction &CGF);
127 LValue getThreadIDVariableLValue(CodeGenFunction &CGF) override;
148 CGOpenMPInlinedRegionInfo(CodeGenFunction::CGCapturedStmtInfo *OldCSI, in CGOpenMPInlinedRegionInfo()
194 CodeGenFunction::CGCapturedStmtInfo *getOldCSI() const { return OldCSI; } in getOldCSI()
203 CodeGenFunction::CGCapturedStmtInfo *OldCSI;
209 CodeGenFunction &CGF;
216 InlinedOpenMPRegionRAII(CodeGenFunction &CGF, const RegionCodeGenTy &CodeGen, in InlinedOpenMPRegionRAII()
234 LValue CGOpenMPRegionInfo::getThreadIDVariableLValue(CodeGenFunction &CGF) { in getThreadIDVariableLValue()
[all …]
HDCGClass.cpp82 CodeGenFunction::GetAddressOfDirectBaseInCompleteClass(llvm::Value *This, in GetAddressOfDirectBaseInCompleteClass()
112 ApplyNonVirtualAndVirtualOffset(CodeGenFunction &CGF, llvm::Value *ptr, in ApplyNonVirtualAndVirtualOffset()
136 llvm::Value *CodeGenFunction::GetAddressOfBaseClass( in GetAddressOfBaseClass()
240 CodeGenFunction::GetAddressOfDerivedClass(llvm::Value *Value, in GetAddressOfDerivedClass()
297 llvm::Value *CodeGenFunction::GetVTTParameter(GlobalDecl GD, in GetVTTParameter()
354 void Emit(CodeGenFunction &CGF, Flags flags) override { in Emit()
392 static void EmitBaseInitializer(CodeGenFunction &CGF, in EmitBaseInitializer()
438 static void EmitAggMemberInitializer(CodeGenFunction &CGF, in EmitAggMemberInitializer()
557 static void EmitLValueForAnyFieldInitialization(CodeGenFunction &CGF, in EmitLValueForAnyFieldInitialization()
571 static void EmitMemberInitializer(CodeGenFunction &CGF, in EmitMemberInitializer()
[all …]
HDTargetInfo.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()
HDCodeGenFunction.cpp37 CodeGenFunction::CodeGenFunction(CodeGenModule &cgm, bool suppressNewContext) in CodeGenFunction() function in CodeGenFunction
80 CodeGenFunction::~CodeGenFunction() { in ~CodeGenFunction()
94 LValue CodeGenFunction::MakeNaturalAlignAddrLValue(llvm::Value *V, QualType T) { in MakeNaturalAlignAddrLValue()
106 llvm::Type *CodeGenFunction::ConvertTypeForMem(QualType T) { in ConvertTypeForMem()
110 llvm::Type *CodeGenFunction::ConvertType(QualType T) { in ConvertType()
114 TypeEvaluationKind CodeGenFunction::getEvaluationKind(QualType type) { in getEvaluationKind()
166 llvm::DebugLoc CodeGenFunction::EmitReturnBlock() { in EmitReturnBlock()
210 static void EmitIfUsed(CodeGenFunction &CGF, llvm::BasicBlock *BB) { in EmitIfUsed()
217 void CodeGenFunction::FinishFunction(SourceLocation EndLoc) { in FinishFunction()
335 bool CodeGenFunction::ShouldInstrumentFunction() { in ShouldInstrumentFunction()
[all …]
HDCGStmt.cpp35 void CodeGenFunction::EmitStopPoint(const Stmt *S) { in EmitStopPoint()
45 void CodeGenFunction::EmitStmt(const Stmt *S) { in EmitStmt()
252 bool CodeGenFunction::EmitSimpleStmt(const Stmt *S) { in EmitSimpleStmt()
275 llvm::Value* CodeGenFunction::EmitCompoundStmt(const CompoundStmt &S, bool GetLast, in EmitCompoundStmt()
287 CodeGenFunction::EmitCompoundStmtWithoutScope(const CompoundStmt &S, in EmitCompoundStmtWithoutScope()
326 void CodeGenFunction::SimplifyForwardingBlocks(llvm::BasicBlock *BB) { in SimplifyForwardingBlocks()
348 void CodeGenFunction::EmitBlock(llvm::BasicBlock *BB, bool IsFinished) { in EmitBlock()
368 void CodeGenFunction::EmitBranch(llvm::BasicBlock *Target) { in EmitBranch()
385 void CodeGenFunction::EmitBlockAfterUses(llvm::BasicBlock *block) { in EmitBlockAfterUses()
401 CodeGenFunction::JumpDest
[all …]
HDCGDeclCXX.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()
323 CodeGenFunction(*this).GenerateCXXGlobalVarDeclInitFunc(Fn, D, Addr, in EmitCXXGlobalVarDeclInitFunc()
[all …]
HDItaniumCXXABI.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 …]
HDCodeGenFunction.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()
239 CodeGenFunction &CGF;
242 CGCapturedStmtRAII(CodeGenFunction &CGF, in CGCapturedStmtRAII()
262 CodeGenFunction *CGF;
264 SanitizerScope(CodeGenFunction *CGF);
367 void enter(CodeGenFunction &CGF, const Stmt *Finally,
370 void exit(CodeGenFunction &CGF);
[all …]
HDCGCleanup.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()
265 void CodeGenFunction::initFullExprCleanup() { in initFullExprCleanup()
291 static void ResolveAllBranchFixups(CodeGenFunction &CGF, in ResolveAllBranchFixups()
329 static llvm::SwitchInst *TransitionToCleanupSwitch(CodeGenFunction &CGF, in TransitionToCleanupSwitch()
349 void CodeGenFunction::ResolveBranchFixups(llvm::BasicBlock *Block) { in ResolveBranchFixups()
388 void CodeGenFunction::PopCleanupBlocks(EHScopeStack::stable_iterator Old) { in PopCleanupBlocks()
407 CodeGenFunction::PopCleanupBlocks(EHScopeStack::stable_iterator Old, in PopCleanupBlocks()
431 static llvm::BasicBlock *CreateNormalEntry(CodeGenFunction &CGF, in CreateNormalEntry()
[all …]
HDCGBlocks.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 …]
HDCGExprCXX.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()
285 CodeGenFunction::EmitCXXMemberPointerCallExpr(const CXXMemberCallExpr *E, in EmitCXXMemberPointerCallExpr()
335 CodeGenFunction::EmitCXXOperatorMemberCallExpr(const CXXOperatorCallExpr *E, in EmitCXXOperatorMemberCallExpr()
345 RValue CodeGenFunction::EmitCUDAKernelCallExpr(const CUDAKernelCallExpr *E, in EmitCUDAKernelCallExpr()
[all …]
HDMicrosoftCXXABI.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 …]
HDCGObjCRuntime.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()
HDCGBuilder.h18 class CodeGenFunction; variable
28 explicit CGBuilderInserter(CodeGenFunction *CGF) : CGF(CGF) {} in CGBuilderInserter()
38 CodeGenFunction *CGF;
HDCGCUDARuntime.h29 class CodeGenFunction; variable
43 virtual RValue EmitCUDAKernelCallExpr(CodeGenFunction &CGF,
48 virtual void emitDeviceStub(CodeGenFunction &CGF, FunctionArgList &Args) = 0;
HDEHScopeStack.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