Lines Matching refs:CodeGenFunction
1 //===-- CodeGenFunction.h - Per-Function state for LLVM CodeGen -*- C++ -*-===//
167 static saved_type save(CodeGenFunction &CGF, llvm::Value *value);
168 static llvm::Value *restore(CodeGenFunction &CGF, saved_type value);
175 static type restore(CodeGenFunction &CGF, saved_type value) {
198 static saved_type save(CodeGenFunction &CGF, type value) {
203 static type restore(CodeGenFunction &CGF, saved_type value) {
237 static saved_type save(CodeGenFunction &CGF, RValue value);
238 RValue restore(CodeGenFunction &CGF);
246 static saved_type save(CodeGenFunction &CGF, type value) {
249 static type restore(CodeGenFunction &CGF, saved_type value) {
254 /// CodeGenFunction - This class organizes the per-function state that is used
256 class CodeGenFunction : public CodeGenTypeCache {
257 CodeGenFunction(const CodeGenFunction &) = delete;
258 void operator=(const CodeGenFunction &) = delete;
290 CodeGenFunction *ParentCGF = nullptr;
325 typedef llvm::function_ref<void(CodeGenFunction &, const OMPLoopDirective &,
328 typedef llvm::function_ref<void(CodeGenFunction &, SourceLocation,
334 CodeGenFunction &, const OMPExecutableDirective &S)>
339 CodeGenFunction &, const OMPExecutableDirective &S, Address LB,
503 virtual void EmitBody(CodeGenFunction &CGF, const Stmt *S) {
535 CodeGenFunction &CGF;
538 CGCapturedStmtRAII(CodeGenFunction &CGF,
577 /// RAII object to set/unset CodeGenFunction::IsSanitizerScope.
579 CodeGenFunction *CGF;
581 SanitizerScope(CodeGenFunction *CGF);
672 CodeGenFunction &CGF;
675 CleanupDeactivationScope(CodeGenFunction &CGF)
713 void Emit(CodeGenFunction &CGF, Flags flags) override {
773 CodeGenFunction &CGF;
778 CodeGenFunction &CGF,
796 CGFPOptionsRAII(CodeGenFunction &CGF, FPOptions FPFeatures);
797 CGFPOptionsRAII(CodeGenFunction &CGF, const Expr *E);
802 CodeGenFunction &CGF;
832 void enter(CodeGenFunction &CGF, const Stmt *Finally,
835 void exit(CodeGenFunction &CGF);
979 CodeGenFunction& CGF;
983 explicit RunCleanupsScope(CodeGenFunction &CGF)
1036 explicit LexicalScope(CodeGenFunction &CGF, SourceRange Range)
1097 bool setVarAddr(CodeGenFunction &CGF, const VarDecl *LocalVD,
1125 bool apply(CodeGenFunction &CGF) {
1132 void restore(CodeGenFunction &CGF) {
1168 explicit OMPPrivateScope(CodeGenFunction &CGF) : RunCleanupsScope(CGF) {}
1217 CodeGenFunction &CGF;
1221 OMPLocalDeclMapRAII(CodeGenFunction &CGF)
1283 ConditionalEvaluation(CodeGenFunction &CGF)
1286 void begin(CodeGenFunction &CGF) {
1292 void end(CodeGenFunction &CGF) {
1310 CodeGenFunction &CGF) {
1321 CodeGenFunction &CGF;
1329 StmtExprEvaluation(CodeGenFunction &CGF)
1345 friend class CodeGenFunction;
1360 CodeGenFunction::PeepholeProtection Protection;
1379 static OpaqueValueMappingData bind(CodeGenFunction &CGF,
1387 static OpaqueValueMappingData bind(CodeGenFunction &CGF,
1395 static OpaqueValueMappingData bind(CodeGenFunction &CGF,
1414 void unbind(CodeGenFunction &CGF) {
1428 CodeGenFunction &CGF;
1441 OpaqueValueMapping(CodeGenFunction &CGF,
1454 OpaqueValueMapping(CodeGenFunction &CGF, const OpaqueValueExpr *OV)
1463 OpaqueValueMapping(CodeGenFunction &CGF,
1469 OpaqueValueMapping(CodeGenFunction &CGF,
1560 void emitExit(CodeGenFunction &CGF, OpenMPDirectiveKind Kind,
1561 const llvm::function_ref<void(CodeGenFunction &)> CodeGen) {
1579 void enter(CodeGenFunction &CGF, OpenMPDirectiveKind Kind, bool HasCancel) {
1588 void exit(CodeGenFunction &CGF) {
1753 FieldConstructionScope(CodeGenFunction &CGF, Address This)
1762 CodeGenFunction &CGF;
1770 CXXDefaultInitExprScope(CodeGenFunction &CGF, const CXXDefaultInitExpr *E)
1783 CodeGenFunction &CGF;
1790 CXXDefaultArgExprScope(CodeGenFunction &CGF, const CXXDefaultArgExpr *E)
1798 ArrayInitLoopExprScope(CodeGenFunction &CGF, llvm::Value *Index)
1807 CodeGenFunction &CGF;
1813 InlinedInheritingConstructorScope(CodeGenFunction &CGF, GlobalDecl GD)
1852 CodeGenFunction &CGF;
1871 // CGOpenMPRuntime, new versions of current CodeGenFunction methods, or
1896 void Emit(CodeGenFunction &CGF, Flags /*flags*/) override {
1909 static Address getAddrOfThreadPrivate(CodeGenFunction &CGF,
1914 static Address getAddressOfLocalVariable(CodeGenFunction &CGF,
1928 static void FinalizeOMPRegion(CodeGenFunction &CGF, InsertPointTy IP) {
1940 CodeGenFunction::JumpDest Dest = CGF.getJumpDestInCurrentScope(DestBB);
1951 static void EmitOMPInlinedRegionBody(CodeGenFunction &CGF,
1957 static void EmitCaptureStmt(CodeGenFunction &CGF, InsertPointTy CodeGenIP,
1983 static void EmitOMPOutlinedRegionBody(CodeGenFunction &CGF,
1993 CodeGenFunction::JumpDest OldReturnBlock;
1994 CodeGenFunction &CGF;
1997 OutlinedRegionBodyRAII(CodeGenFunction &cgf, InsertPointTy &AllocaIP,
2019 CodeGenFunction &CGF;
2022 InlinedRegionBodyRAII(CodeGenFunction &cgf, InsertPointTy &AllocaIP,
2131 CodeGenFunction(CodeGenModule &cgm, bool suppressNewContext=false);
2132 ~CodeGenFunction();
2187 typedef void Destroyer(CodeGenFunction &CGF, Address addr, QualType ty);
2777 AllocaTrackerRAII(CodeGenFunction &CGF)
2786 CodeGenFunction &CGF;
3343 typedef void SpecialInitFn(CodeGenFunction &Init, const VarDecl &D,
3356 friend class CodeGenFunction;
3419 Address getObjectAddress(CodeGenFunction &CGF) const {
3601 void startOutlinedSEHHelper(CodeGenFunction &ParentCGF, bool IsFilter,
3604 llvm::Function *GenerateSEHFilterFunction(CodeGenFunction &ParentCGF,
3607 llvm::Function *GenerateSEHFinallyFunction(CodeGenFunction &ParentCGF,
3610 void EmitSEHExceptionCodeSave(CodeGenFunction &ParentCGF,
3623 void EmitCapturedLocals(CodeGenFunction &ParentCGF, const Stmt *OutlinedStmt,
3631 Address recoverAddrOfEscapedLocal(CodeGenFunction &ParentCGF,
3640 CodeGenFunction &CGF;
3643 OMPCancelStackRAII(CodeGenFunction &CGF, OpenMPDirectiveKind Kind,
3756 CodeGenFunction::OMPPrivateScope &PrivateScope);
3762 const llvm::function_ref<llvm::Value *(CodeGenFunction &)> CondGen);
3788 typedef const llvm::function_ref<void(CodeGenFunction & /*CGF*/,
3815 CodeGenFunction &CGF,
3980 const llvm::function_ref<void(CodeGenFunction &)> BodyGen,
3981 const llvm::function_ref<void(CodeGenFunction &)> PostIncGen);
4006 const llvm::function_ref<llvm::Value *(CodeGenFunction &)> CondGen);
4316 LValue getReferenceLValue(CodeGenFunction &CGF, Expr *refExpr) const {
5346 DominatingLLVMValue::save(CodeGenFunction &CGF, llvm::Value *value) {
5359 inline llvm::Value *DominatingLLVMValue::restore(CodeGenFunction &CGF,