|
static OMPForSimdDirective * | Create (const ASTContext &C, SourceLocation StartLoc, SourceLocation EndLoc, unsigned CollapsedNum, ArrayRef< OMPClause * > Clauses, Stmt *AssociatedStmt, const HelperExprs &Exprs) |
| Creates directive with a list of Clauses.
|
|
static OMPForSimdDirective * | CreateEmpty (const ASTContext &C, unsigned NumClauses, unsigned CollapsedNum, EmptyShell) |
| Creates an empty directive with the place for NumClauses clauses.
|
|
static bool | classof (const Stmt *T) |
|
static bool | classof (const Stmt *T) |
|
static Stmt * | tryToFindNextInnerLoop (Stmt *CurStmt, bool TryImperfectlyNestedLoops) |
| Try to find the next loop sub-statement in the specified statement CurStmt .
|
|
static const Stmt * | tryToFindNextInnerLoop (const Stmt *CurStmt, bool TryImperfectlyNestedLoops) |
|
static bool | doForAllLoops (Stmt *CurStmt, bool TryImperfectlyNestedLoops, unsigned NumLoops, llvm::function_ref< bool(unsigned, Stmt *)> Callback, llvm::function_ref< void(OMPLoopTransformationDirective *)> OnTransformationCallback) |
| Calls the specified callback function for all the loops in CurStmt , from the outermost to the innermost.
|
|
static bool | doForAllLoops (const Stmt *CurStmt, bool TryImperfectlyNestedLoops, unsigned NumLoops, llvm::function_ref< bool(unsigned, const Stmt *)> Callback, llvm::function_ref< void(const OMPLoopTransformationDirective *)> OnTransformationCallback) |
|
static bool | doForAllLoops (Stmt *CurStmt, bool TryImperfectlyNestedLoops, unsigned NumLoops, llvm::function_ref< bool(unsigned, Stmt *)> Callback) |
| Calls the specified callback function for all the loops in CurStmt , from the outermost to the innermost.
|
|
static bool | doForAllLoops (const Stmt *CurStmt, bool TryImperfectlyNestedLoops, unsigned NumLoops, llvm::function_ref< bool(unsigned, const Stmt *)> Callback) |
|
static void | doForAllLoopsBodies (Stmt *CurStmt, bool TryImperfectlyNestedLoops, unsigned NumLoops, llvm::function_ref< void(unsigned, Stmt *, Stmt *)> Callback) |
| Calls the specified callback function for all the loop bodies in CurStmt , from the outermost loop to the innermost.
|
|
static void | doForAllLoopsBodies (const Stmt *CurStmt, bool TryImperfectlyNestedLoops, unsigned NumLoops, llvm::function_ref< void(unsigned, const Stmt *, const Stmt *)> Callback) |
|
static bool | classof (const Stmt *T) |
|
static llvm::iterator_range< used_clauses_child_iterator > | used_clauses_children (ArrayRef< OMPClause * > Clauses) |
|
template<typename SpecificClause > |
static llvm::iterator_range< specific_clause_iterator< SpecificClause > > | getClausesOfKind (ArrayRef< OMPClause * > Clauses) |
|
template<typename SpecificClause > |
static const SpecificClause * | getSingleClause (ArrayRef< OMPClause * > Clauses) |
| Gets a single clause of the specified kind associated with the current directive iff there is only one clause of this kind (and assertion is fired if there is more than one clause is associated with the directive).
|
|
static bool | classof (const Stmt *S) |
|
static void | addStmtClass (const StmtClass s) |
|
static void | EnableStatistics () |
|
static void | PrintStats () |
|
static Likelihood | getLikelihood (ArrayRef< const Attr * > Attrs) |
|
static Likelihood | getLikelihood (const Stmt *S) |
|
static const Attr * | getLikelihoodAttr (const Stmt *S) |
|
static Likelihood | getLikelihood (const Stmt *Then, const Stmt *Else) |
|
static std::tuple< bool, const Attr *, const Attr * > | determineLikelihoodConflict (const Stmt *Then, const Stmt *Else) |
|
|
enum | StmtClass { NoStmtClass = 0
} |
|
enum | Likelihood { LH_Unlikely = -1
, LH_None
, LH_Likely
} |
| The likelihood of a branch being taken. More...
|
|
using | child_iterator = StmtIterator |
| Child Iterators: All subclasses must implement 'children' to permit easy iteration over the substatements/subexpressions of an AST node.
|
|
using | const_child_iterator = ConstStmtIterator |
|
using | child_range = llvm::iterator_range< child_iterator > |
|
using | const_child_range = llvm::iterator_range< const_child_iterator > |
|
Expr * | getIterationVariable () const |
|
Expr * | getLastIteration () const |
|
Expr * | getCalcLastIteration () const |
|
Expr * | getPreCond () const |
|
Expr * | getCond () const |
|
Expr * | getInit () const |
|
Expr * | getInc () const |
|
const Stmt * | getPreInits () const |
|
Stmt * | getPreInits () |
|
Expr * | getIsLastIterVariable () const |
|
Expr * | getLowerBoundVariable () const |
|
Expr * | getUpperBoundVariable () const |
|
Expr * | getStrideVariable () const |
|
Expr * | getEnsureUpperBound () const |
|
Expr * | getNextLowerBound () const |
|
Expr * | getNextUpperBound () const |
|
Expr * | getNumIterations () const |
|
Expr * | getPrevLowerBoundVariable () const |
|
Expr * | getPrevUpperBoundVariable () const |
|
Expr * | getDistInc () const |
|
Expr * | getPrevEnsureUpperBound () const |
|
Expr * | getCombinedLowerBoundVariable () const |
|
Expr * | getCombinedUpperBoundVariable () const |
|
Expr * | getCombinedEnsureUpperBound () const |
|
Expr * | getCombinedInit () const |
|
Expr * | getCombinedCond () const |
|
Expr * | getCombinedNextLowerBound () const |
|
Expr * | getCombinedNextUpperBound () const |
|
Expr * | getCombinedDistCond () const |
|
Expr * | getCombinedParForInDistCond () const |
|
Stmt * | getBody () |
|
const Stmt * | getBody () const |
|
ArrayRef< Expr * > | counters () |
|
ArrayRef< Expr * > | counters () const |
|
ArrayRef< Expr * > | private_counters () |
|
ArrayRef< Expr * > | private_counters () const |
|
ArrayRef< Expr * > | inits () |
|
ArrayRef< Expr * > | inits () const |
|
ArrayRef< Expr * > | updates () |
|
ArrayRef< Expr * > | updates () const |
|
ArrayRef< Expr * > | finals () |
|
ArrayRef< Expr * > | finals () const |
|
ArrayRef< Expr * > | dependent_counters () |
|
ArrayRef< Expr * > | dependent_counters () const |
|
ArrayRef< Expr * > | dependent_inits () |
|
ArrayRef< Expr * > | dependent_inits () const |
|
ArrayRef< Expr * > | finals_conditions () |
|
ArrayRef< Expr * > | finals_conditions () const |
|
unsigned | getLoopsNumber () const |
| Get number of collapsed loops.
|
|
template<typename SpecificClause > |
llvm::iterator_range< specific_clause_iterator< SpecificClause > > | getClausesOfKind () const |
|
template<typename SpecificClause > |
const SpecificClause * | getSingleClause () const |
|
template<typename SpecificClause > |
bool | hasClausesOfKind () const |
| Returns true if the current directive has one or more clauses of a specific kind.
|
|
SourceLocation | getBeginLoc () const |
| Returns starting location of directive kind.
|
|
SourceLocation | getEndLoc () const |
| Returns ending location of directive.
|
|
void | setLocStart (SourceLocation Loc) |
| Set starting location of directive kind.
|
|
void | setLocEnd (SourceLocation Loc) |
| Set ending location of directive.
|
|
unsigned | getNumClauses () const |
| Get number of clauses.
|
|
OMPClause * | getClause (unsigned I) const |
| Returns specified clause.
|
|
bool | hasAssociatedStmt () const |
| Returns true if directive has associated statement.
|
|
const Stmt * | getAssociatedStmt () const |
| Returns statement associated with the directive.
|
|
Stmt * | getAssociatedStmt () |
|
const CapturedStmt * | getCapturedStmt (OpenMPDirectiveKind RegionKind) const |
| Returns the captured statement associated with the component region within the (combined) directive.
|
|
CapturedStmt * | getInnermostCapturedStmt () |
| Get innermost captured statement for the construct.
|
|
const CapturedStmt * | getInnermostCapturedStmt () const |
|
OpenMPDirectiveKind | getDirectiveKind () const |
|
child_range | children () |
|
const_child_range | children () const |
|
ArrayRef< OMPClause * > | clauses () const |
|
bool | isStandaloneDirective () const |
| Returns whether or not this is a Standalone directive.
|
|
const Stmt * | getStructuredBlock () const |
| Returns the AST node representing OpenMP structured-block of this OpenMP executable directive, Prerequisite: Executable Directive must not be Standalone directive.
|
|
Stmt * | getStructuredBlock () |
|
const Stmt * | getRawStmt () const |
|
Stmt * | getRawStmt () |
|
void * | operator new (size_t bytes, const ASTContext &C, unsigned alignment=8) |
|
void * | operator new (size_t bytes, const ASTContext *C, unsigned alignment=8) |
|
void * | operator new (size_t bytes, void *mem) noexcept |
|
void | operator delete (void *, const ASTContext &, unsigned) noexcept |
|
void | operator delete (void *, const ASTContext *, unsigned) noexcept |
|
void | operator delete (void *, size_t) noexcept |
|
void | operator delete (void *, void *) noexcept |
|
| Stmt ()=delete |
|
| Stmt (const Stmt &)=delete |
|
| Stmt (Stmt &&)=delete |
|
Stmt & | operator= (const Stmt &)=delete |
|
Stmt & | operator= (Stmt &&)=delete |
|
| Stmt (StmtClass SC) |
|
StmtClass | getStmtClass () const |
|
const char * | getStmtClassName () const |
|
SourceRange | getSourceRange () const LLVM_READONLY |
| SourceLocation tokens are not useful in isolation - they are low level value objects created/interpreted by SourceManager.
|
|
SourceLocation | getBeginLoc () const LLVM_READONLY |
|
SourceLocation | getEndLoc () const LLVM_READONLY |
|
void | dump () const |
| Dumps the specified AST fragment and all subtrees to llvm::errs() .
|
|
void | dump (raw_ostream &OS, const ASTContext &Context) const |
|
int64_t | getID (const ASTContext &Context) const |
|
void | dumpColor () const |
| dumpColor - same as dump(), but forces color highlighting.
|
|
void | dumpPretty (const ASTContext &Context) const |
| dumpPretty/printPretty - These two methods do a "pretty print" of the AST back to its original source language syntax.
|
|
void | printPretty (raw_ostream &OS, PrinterHelper *Helper, const PrintingPolicy &Policy, unsigned Indentation=0, StringRef NewlineSymbol="\n", const ASTContext *Context=nullptr) const |
|
void | printPrettyControlled (raw_ostream &OS, PrinterHelper *Helper, const PrintingPolicy &Policy, unsigned Indentation=0, StringRef NewlineSymbol="\n", const ASTContext *Context=nullptr) const |
|
void | printJson (raw_ostream &Out, PrinterHelper *Helper, const PrintingPolicy &Policy, bool AddQuotes) const |
| Pretty-prints in JSON format.
|
|
void | viewAST () const |
| viewAST - Visualize an AST rooted at this Stmt* using GraphViz.
|
|
Stmt * | IgnoreContainers (bool IgnoreCaptured=false) |
| Skip no-op (attributed, compound) container stmts and skip captured stmt at the top, if IgnoreCaptured is true.
|
|
const Stmt * | IgnoreContainers (bool IgnoreCaptured=false) const |
|
const Stmt * | stripLabelLikeStatements () const |
| Strip off all label-like statements.
|
|
Stmt * | stripLabelLikeStatements () |
|
child_range | children () |
|
const_child_range | children () const |
|
child_iterator | child_begin () |
|
child_iterator | child_end () |
|
const_child_iterator | child_begin () const |
|
const_child_iterator | child_end () const |
|
void | Profile (llvm::FoldingSetNodeID &ID, const ASTContext &Context, bool Canonical, bool ProfileLambdaExpr=false) const |
| Produce a unique representation of the given statement.
|
|
void | ProcessODRHash (llvm::FoldingSetNodeID &ID, ODRHash &Hash) const |
| Calculate a unique representation for a statement that is stable across compiler invocations.
|
|
enum | { NumStmtBits = 8
} |
|
enum | { NumExprBits = NumStmtBits + 5 + llvm::BitWidth<ExprDependence>
} |
|
enum | { NumCallExprBits = 32
} |
|
enum | { NumOverloadExprBits = NumExprBits + 1
} |
|
template<typename T > |
using | ConstCastIterator = CastIterator< T, const T *const, const Stmt *const > |
| Const iterator for iterating over Stmt * arrays that contain only T *.
|
|
using | ExprIterator = CastIterator< Expr > |
|
using | ConstExprIterator = ConstCastIterator< Expr > |
|
| OMPLoopDirective (StmtClass SC, OpenMPDirectiveKind Kind, SourceLocation StartLoc, SourceLocation EndLoc, unsigned CollapsedNum) |
| Build instance of loop directive of class Kind.
|
|
void | setIterationVariable (Expr *IV) |
|
void | setLastIteration (Expr *LI) |
|
void | setCalcLastIteration (Expr *CLI) |
|
void | setPreCond (Expr *PC) |
|
void | setCond (Expr *Cond) |
|
void | setInit (Expr *Init) |
|
void | setInc (Expr *Inc) |
|
void | setPreInits (Stmt *PreInits) |
|
void | setIsLastIterVariable (Expr *IL) |
|
void | setLowerBoundVariable (Expr *LB) |
|
void | setUpperBoundVariable (Expr *UB) |
|
void | setStrideVariable (Expr *ST) |
|
void | setEnsureUpperBound (Expr *EUB) |
|
void | setNextLowerBound (Expr *NLB) |
|
void | setNextUpperBound (Expr *NUB) |
|
void | setNumIterations (Expr *NI) |
|
void | setPrevLowerBoundVariable (Expr *PrevLB) |
|
void | setPrevUpperBoundVariable (Expr *PrevUB) |
|
void | setDistInc (Expr *DistInc) |
|
void | setPrevEnsureUpperBound (Expr *PrevEUB) |
|
void | setCombinedLowerBoundVariable (Expr *CombLB) |
|
void | setCombinedUpperBoundVariable (Expr *CombUB) |
|
void | setCombinedEnsureUpperBound (Expr *CombEUB) |
|
void | setCombinedInit (Expr *CombInit) |
|
void | setCombinedCond (Expr *CombCond) |
|
void | setCombinedNextLowerBound (Expr *CombNLB) |
|
void | setCombinedNextUpperBound (Expr *CombNUB) |
|
void | setCombinedDistCond (Expr *CombDistCond) |
|
void | setCombinedParForInDistCond (Expr *CombParForInDistCond) |
|
void | setCounters (ArrayRef< Expr * > A) |
|
void | setPrivateCounters (ArrayRef< Expr * > A) |
|
void | setInits (ArrayRef< Expr * > A) |
|
void | setUpdates (ArrayRef< Expr * > A) |
|
void | setFinals (ArrayRef< Expr * > A) |
|
void | setDependentCounters (ArrayRef< Expr * > A) |
|
void | setDependentInits (ArrayRef< Expr * > A) |
|
void | setFinalsConditions (ArrayRef< Expr * > A) |
|
| OMPLoopBasedDirective (StmtClass SC, OpenMPDirectiveKind Kind, SourceLocation StartLoc, SourceLocation EndLoc, unsigned NumAssociatedLoops) |
| Build instance of loop directive of class Kind.
|
|
| OMPExecutableDirective (StmtClass SC, OpenMPDirectiveKind K, SourceLocation StartLoc, SourceLocation EndLoc) |
| Build instance of directive of class K.
|
|
void * | operator new (size_t bytes) noexcept |
|
void | operator delete (void *data) noexcept |
|
| Stmt (StmtClass SC, EmptyShell) |
| Construct an empty statement.
|
|
static unsigned | getArraysOffset (OpenMPDirectiveKind Kind) |
| Offset to the start of children expression arrays.
|
|
static unsigned | numLoopChildren (unsigned CollapsedNum, OpenMPDirectiveKind Kind) |
| Children number.
|
|
template<typename T , typename... Params> |
static T * | createDirective (const ASTContext &C, ArrayRef< OMPClause * > Clauses, Stmt *AssociatedStmt, unsigned NumChildren, Params &&... P) |
|
template<typename T , typename... Params> |
static T * | createEmptyDirective (const ASTContext &C, unsigned NumClauses, bool HasAssociatedStmt, unsigned NumChildren, Params &&... P) |
|
template<typename T > |
static T * | createEmptyDirective (const ASTContext &C, unsigned NumClauses, bool HasAssociatedStmt=false, unsigned NumChildren=0) |
|
unsigned | NumAssociatedLoops = 0 |
| Number of collapsed loops as specified by 'collapse' clause.
|
|
OMPChildren * | Data = nullptr |
| Data, associated with the directive.
|
|
union { |
StmtBitfields StmtBits |
|
NullStmtBitfields NullStmtBits |
|
CompoundStmtBitfields CompoundStmtBits |
|
LabelStmtBitfields LabelStmtBits |
|
AttributedStmtBitfields AttributedStmtBits |
|
IfStmtBitfields IfStmtBits |
|
SwitchStmtBitfields SwitchStmtBits |
|
WhileStmtBitfields WhileStmtBits |
|
DoStmtBitfields DoStmtBits |
|
ForStmtBitfields ForStmtBits |
|
GotoStmtBitfields GotoStmtBits |
|
ContinueStmtBitfields ContinueStmtBits |
|
BreakStmtBitfields BreakStmtBits |
|
ReturnStmtBitfields ReturnStmtBits |
|
SwitchCaseBitfields SwitchCaseBits |
|
ExprBitfields ExprBits |
|
ConstantExprBitfields ConstantExprBits |
|
PredefinedExprBitfields PredefinedExprBits |
|
DeclRefExprBitfields DeclRefExprBits |
|
FloatingLiteralBitfields FloatingLiteralBits |
|
StringLiteralBitfields StringLiteralBits |
|
CharacterLiteralBitfields CharacterLiteralBits |
|
UnaryOperatorBitfields UnaryOperatorBits |
|
UnaryExprOrTypeTraitExprBitfields UnaryExprOrTypeTraitExprBits |
|
ArrayOrMatrixSubscriptExprBitfields ArrayOrMatrixSubscriptExprBits |
|
CallExprBitfields CallExprBits |
|
MemberExprBitfields MemberExprBits |
|
CastExprBitfields CastExprBits |
|
BinaryOperatorBitfields BinaryOperatorBits |
|
InitListExprBitfields InitListExprBits |
|
ParenListExprBitfields ParenListExprBits |
|
GenericSelectionExprBitfields GenericSelectionExprBits |
|
PseudoObjectExprBitfields PseudoObjectExprBits |
|
SourceLocExprBitfields SourceLocExprBits |
|
StmtExprBitfields StmtExprBits |
|
CXXOperatorCallExprBitfields CXXOperatorCallExprBits |
|
CXXRewrittenBinaryOperatorBitfields CXXRewrittenBinaryOperatorBits |
|
CXXBoolLiteralExprBitfields CXXBoolLiteralExprBits |
|
CXXNullPtrLiteralExprBitfields CXXNullPtrLiteralExprBits |
|
CXXThisExprBitfields CXXThisExprBits |
|
CXXThrowExprBitfields CXXThrowExprBits |
|
CXXDefaultArgExprBitfields CXXDefaultArgExprBits |
|
CXXDefaultInitExprBitfields CXXDefaultInitExprBits |
|
CXXScalarValueInitExprBitfields CXXScalarValueInitExprBits |
|
CXXNewExprBitfields CXXNewExprBits |
|
CXXDeleteExprBitfields CXXDeleteExprBits |
|
TypeTraitExprBitfields TypeTraitExprBits |
|
DependentScopeDeclRefExprBitfields DependentScopeDeclRefExprBits |
|
CXXConstructExprBitfields CXXConstructExprBits |
|
ExprWithCleanupsBitfields ExprWithCleanupsBits |
|
CXXUnresolvedConstructExprBitfields CXXUnresolvedConstructExprBits |
|
CXXDependentScopeMemberExprBitfields CXXDependentScopeMemberExprBits |
|
OverloadExprBitfields OverloadExprBits |
|
UnresolvedLookupExprBitfields UnresolvedLookupExprBits |
|
UnresolvedMemberExprBitfields UnresolvedMemberExprBits |
|
CXXNoexceptExprBitfields CXXNoexceptExprBits |
|
SubstNonTypeTemplateParmExprBitfields SubstNonTypeTemplateParmExprBits |
|
LambdaExprBitfields LambdaExprBits |
|
RequiresExprBitfields RequiresExprBits |
|
CoawaitExprBitfields CoawaitBits |
|
ObjCIndirectCopyRestoreExprBitfields ObjCIndirectCopyRestoreExprBits |
|
OpaqueValueExprBitfields OpaqueValueExprBits |
|
}; | |
|
This represents '#pragma omp for simd' directive.
#pragma omp for simd private(a,b) linear(i,j:s) reduction(+:c,d)
In this example directive '#pragma omp for simd' has clauses 'private' with the variables 'a' and 'b', 'linear' with variables 'i', 'j' and linear step 's', 'reduction' with operator '+' and variables 'c' and 'd'.
Definition at line 1724 of file StmtOpenMP.h.