|
static const VarDecl * | getBaseDecl (const Expr *Ref) |
|
static void | emitCommonOMPTargetDirective (CodeGenFunction &CGF, const OMPExecutableDirective &S, const RegionCodeGenTy &CodeGen) |
|
static Address | castValueFromUintptr (CodeGenFunction &CGF, SourceLocation Loc, QualType DstType, StringRef Name, LValue AddrLV) |
|
static QualType | getCanonicalParamType (ASTContext &C, QualType T) |
|
static llvm::Function * | emitOutlinedFunctionPrologue (CodeGenFunction &CGF, FunctionArgList &Args, llvm::MapVector< const Decl *, std::pair< const VarDecl *, Address >> &LocalAddrs, llvm::DenseMap< const Decl *, std::pair< const Expr *, llvm::Value * >> &VLASizes, llvm::Value *&CXXThisValue, const FunctionOptions &FO) |
|
static void | emitPostUpdateForReductionClause (CodeGenFunction &CGF, const OMPExecutableDirective &D, const llvm::function_ref< llvm::Value *(CodeGenFunction &)> CondGen) |
|
static void | checkForLastprivateConditionalUpdate (CodeGenFunction &CGF, const OMPExecutableDirective &S) |
|
static void | emitCommonOMPParallelDirective (CodeGenFunction &CGF, const OMPExecutableDirective &S, OpenMPDirectiveKind InnermostKind, const RegionCodeGenTy &CodeGen, const CodeGenBoundParametersTy &CodeGenBoundParameters) |
|
static bool | isAllocatableDecl (const VarDecl *VD) |
|
static void | emitEmptyBoundParameters (CodeGenFunction &, const OMPExecutableDirective &, llvm::SmallVectorImpl< llvm::Value * > &) |
|
static void | emitOMPCopyinClause (CodeGenFunction &CGF, const OMPExecutableDirective &S) |
|
static void | emitBody (CodeGenFunction &CGF, const Stmt *S, const Stmt *NextLoop, int MaxLevel, int Level=0) |
|
static EmittedClosureTy | emitCapturedStmtFunc (CodeGenFunction &ParentCGF, const CapturedStmt *S) |
| Emit a captured statement and return the function as well as its captured closure context. More...
|
|
static llvm::CallInst * | emitCapturedStmtCall (CodeGenFunction &ParentCGF, EmittedClosureTy Cap, llvm::ArrayRef< llvm::Value * > Args) |
| Emit a call to a previously captured closure. More...
|
|
static void | emitAlignedClause (CodeGenFunction &CGF, const OMPExecutableDirective &D) |
|
static void | emitPreCond (CodeGenFunction &CGF, const OMPLoopDirective &S, const Expr *Cond, llvm::BasicBlock *TrueBlock, llvm::BasicBlock *FalseBlock, uint64_t TrueCount) |
|
static void | emitSimdlenSafelenClause (CodeGenFunction &CGF, const OMPExecutableDirective &D) |
|
static void | emitOMPLoopBodyWithStopPoint (CodeGenFunction &CGF, const OMPLoopDirective &S, CodeGenFunction::JumpDest LoopExit) |
|
static LValue | EmitOMPHelperVar (CodeGenFunction &CGF, const DeclRefExpr *Helper) |
| Emit a helper variable and return corresponding lvalue. More...
|
|
static void | emitCommonSimdLoop (CodeGenFunction &CGF, const OMPLoopDirective &S, const RegionCodeGenTy &SimdInitGen, const RegionCodeGenTy &BodyCodeGen) |
|
static void | emitOMPSimdRegion (CodeGenFunction &CGF, const OMPLoopDirective &S, PrePostActionTy &Action) |
|
static bool | isSupportedByOpenMPIRBuilder (const OMPSimdDirective &S) |
|
static llvm::MapVector< llvm::Value *, llvm::Value * > | GetAlignedMapping (const OMPSimdDirective &S, CodeGenFunction &CGF) |
|
static void | emitEmptyOrdered (CodeGenFunction &, SourceLocation Loc, const unsigned IVSize, const bool IVSigned) |
|
static std::pair< LValue, LValue > | emitDistributeParallelForInnerBounds (CodeGenFunction &CGF, const OMPExecutableDirective &S) |
|
static std::pair< llvm::Value *, llvm::Value * > | emitDistributeParallelForDispatchBounds (CodeGenFunction &CGF, const OMPExecutableDirective &S, Address LB, Address UB) |
| if the 'for' loop has a dispatch schedule (e.g. More...
|
|
static void | emitDistributeParallelForDistributeInnerBoundParams (CodeGenFunction &CGF, const OMPExecutableDirective &S, llvm::SmallVectorImpl< llvm::Value * > &CapturedVars) |
|
static void | emitInnerParallelForWhenCombined (CodeGenFunction &CGF, const OMPLoopDirective &S, CodeGenFunction::JumpDest LoopExit) |
|
static std::pair< LValue, LValue > | emitForLoopBounds (CodeGenFunction &CGF, const OMPExecutableDirective &S) |
| The following two functions generate expressions for the loop lower and upper bounds in case of static and dynamic (dispatch) schedule of the associated 'for' or 'distribute' loop. More...
|
|
static std::pair< llvm::Value *, llvm::Value * > | emitDispatchForLoopBounds (CodeGenFunction &CGF, const OMPExecutableDirective &S, Address LB, Address UB) |
| When dealing with dispatch schedules (e.g. More...
|
|
static void | emitScanBasedDirectiveDecls (CodeGenFunction &CGF, const OMPLoopDirective &S, llvm::function_ref< llvm::Value *(CodeGenFunction &)> NumIteratorsGen) |
| Emits internal temp array declarations for the directive with inscan reductions. More...
|
|
static void | emitScanBasedDirectiveFinals (CodeGenFunction &CGF, const OMPLoopDirective &S, llvm::function_ref< llvm::Value *(CodeGenFunction &)> NumIteratorsGen) |
| Copies final inscan reductions values to the original variables. More...
|
|
static void | emitScanBasedDirective (CodeGenFunction &CGF, const OMPLoopDirective &S, llvm::function_ref< llvm::Value *(CodeGenFunction &)> NumIteratorsGen, llvm::function_ref< void(CodeGenFunction &)> FirstGen, llvm::function_ref< void(CodeGenFunction &)> SecondGen) |
| Emits the code for the directive with inscan reductions. More...
|
|
static bool | emitWorksharingDirective (CodeGenFunction &CGF, const OMPLoopDirective &S, bool HasCancel) |
|
static bool | isSupportedByOpenMPIRBuilder (const OMPForDirective &S) |
|
static llvm::omp::ScheduleKind | convertClauseKindToSchedKind (OpenMPScheduleClauseKind ScheduleClauseKind) |
|
static LValue | createSectionLVal (CodeGenFunction &CGF, QualType Ty, const Twine &Name, llvm::Value *Init=nullptr) |
|
static void | emitMaster (CodeGenFunction &CGF, const OMPExecutableDirective &S) |
|
static void | emitMasked (CodeGenFunction &CGF, const OMPExecutableDirective &S) |
|
static void | buildDependences (const OMPExecutableDirective &S, OMPTaskDataTy &Data) |
|
static ImplicitParamDecl * | createImplicitFirstprivateForType (ASTContext &C, OMPTaskDataTy &Data, QualType Ty, CapturedDecl *CD, SourceLocation Loc) |
|
bool | isSupportedByOpenMPIRBuilder (const OMPTaskgroupDirective &T) |
|
static llvm::Function * | emitOutlinedOrderedFunction (CodeGenModule &CGM, const CapturedStmt *S, SourceLocation Loc) |
|
template<typename T > |
static void | emitRestoreIP (CodeGenFunction &CGF, const T *C, llvm::OpenMPIRBuilder::InsertPointTy AllocaIP, llvm::OpenMPIRBuilder &OMPBuilder) |
|
static llvm::Value * | convertToScalarValue (CodeGenFunction &CGF, RValue Val, QualType SrcType, QualType DestType, SourceLocation Loc) |
|
static CodeGenFunction::ComplexPairTy | convertToComplexValue (CodeGenFunction &CGF, RValue Val, QualType SrcType, QualType DestType, SourceLocation Loc) |
|
static void | emitSimpleAtomicStore (CodeGenFunction &CGF, llvm::AtomicOrdering AO, LValue LVal, RValue RVal) |
|
static RValue | emitSimpleAtomicLoad (CodeGenFunction &CGF, llvm::AtomicOrdering AO, LValue LVal, SourceLocation Loc) |
|
static void | emitOMPAtomicReadExpr (CodeGenFunction &CGF, llvm::AtomicOrdering AO, const Expr *X, const Expr *V, SourceLocation Loc) |
|
static void | emitOMPAtomicWriteExpr (CodeGenFunction &CGF, llvm::AtomicOrdering AO, const Expr *X, const Expr *E, SourceLocation Loc) |
|
static std::pair< bool, RValue > | emitOMPAtomicRMW (CodeGenFunction &CGF, LValue X, RValue Update, BinaryOperatorKind BO, llvm::AtomicOrdering AO, bool IsXLHSInRHSPart) |
|
static void | emitOMPAtomicUpdateExpr (CodeGenFunction &CGF, llvm::AtomicOrdering AO, const Expr *X, const Expr *E, const Expr *UE, bool IsXLHSInRHSPart, SourceLocation Loc) |
|
static RValue | convertToType (CodeGenFunction &CGF, RValue Value, QualType SourceType, QualType ResType, SourceLocation Loc) |
|
static void | emitOMPAtomicCaptureExpr (CodeGenFunction &CGF, llvm::AtomicOrdering AO, bool IsPostfixUpdate, const Expr *V, const Expr *X, const Expr *E, const Expr *UE, bool IsXLHSInRHSPart, SourceLocation Loc) |
|
static void | emitOMPAtomicCompareExpr (CodeGenFunction &CGF, llvm::AtomicOrdering AO, llvm::AtomicOrdering FailAO, const Expr *X, const Expr *V, const Expr *R, const Expr *E, const Expr *D, const Expr *CE, bool IsXBinopExpr, bool IsPostfixUpdate, bool IsFailOnly, SourceLocation Loc) |
|
static void | emitOMPAtomicExpr (CodeGenFunction &CGF, OpenMPClauseKind Kind, llvm::AtomicOrdering AO, llvm::AtomicOrdering FailAO, bool IsPostfixUpdate, const Expr *X, const Expr *V, const Expr *R, const Expr *E, const Expr *UE, const Expr *D, const Expr *CE, bool IsXLHSInRHSPart, bool IsFailOnly, SourceLocation Loc) |
|
static void | emitTargetRegion (CodeGenFunction &CGF, const OMPTargetDirective &S, PrePostActionTy &Action) |
|
static void | emitCommonOMPTeamsDirective (CodeGenFunction &CGF, const OMPExecutableDirective &S, OpenMPDirectiveKind InnermostKind, const RegionCodeGenTy &CodeGen) |
|
static void | emitTargetTeamsRegion (CodeGenFunction &CGF, PrePostActionTy &Action, const OMPTargetTeamsDirective &S) |
|
static void | emitTargetTeamsDistributeRegion (CodeGenFunction &CGF, PrePostActionTy &Action, const OMPTargetTeamsDistributeDirective &S) |
|
static void | emitTargetTeamsDistributeSimdRegion (CodeGenFunction &CGF, PrePostActionTy &Action, const OMPTargetTeamsDistributeSimdDirective &S) |
|
static void | emitTargetTeamsDistributeParallelForRegion (CodeGenFunction &CGF, const OMPTargetTeamsDistributeParallelForDirective &S, PrePostActionTy &Action) |
|
static void | emitTargetTeamsDistributeParallelForSimdRegion (CodeGenFunction &CGF, const OMPTargetTeamsDistributeParallelForSimdDirective &S, PrePostActionTy &Action) |
|
static void | emitTargetParallelRegion (CodeGenFunction &CGF, const OMPTargetParallelDirective &S, PrePostActionTy &Action) |
|
static void | emitTargetParallelForRegion (CodeGenFunction &CGF, const OMPTargetParallelForDirective &S, PrePostActionTy &Action) |
|
static void | emitTargetParallelForSimdRegion (CodeGenFunction &CGF, const OMPTargetParallelForSimdDirective &S, PrePostActionTy &Action) |
|
static void | mapParam (CodeGenFunction &CGF, const DeclRefExpr *Helper, const ImplicitParamDecl *PVD, CodeGenFunction::OMPPrivateScope &Privates) |
| Emit a helper variable and return corresponding lvalue. More...
|
|
static void | emitTargetTeamsLoopCodegenStatus (CodeGenFunction &CGF, std::string StatusMsg, const OMPExecutableDirective &D) |
|
static void | emitTargetTeamsGenericLoopRegionAsParallel (CodeGenFunction &CGF, PrePostActionTy &Action, const OMPTargetTeamsGenericLoopDirective &S) |
|
static void | emitTargetTeamsGenericLoopRegionAsDistribute (CodeGenFunction &CGF, PrePostActionTy &Action, const OMPTargetTeamsGenericLoopDirective &S) |
|
static void | emitTargetParallelGenericLoopRegion (CodeGenFunction &CGF, const OMPTargetParallelGenericLoopDirective &S, PrePostActionTy &Action) |
|