|
clang
3.8.0
|
This is a common base class for loop directives ('omp simd', 'omp for', 'omp for simd' etc.). More...
#include <StmtOpenMP.h>
Classes | |
| struct | HelperExprs |
| The expressions built for the OpenMP loop CodeGen for the whole collapsed loop nest. More... | |
Public Member Functions | |
| unsigned | getCollapsedNumber () const |
| Get number of collapsed loops. More... | |
| Expr * | getIterationVariable () const |
| Expr * | getLastIteration () const |
| Expr * | getCalcLastIteration () const |
| Expr * | getPreCond () const |
| Expr * | getCond () const |
| Expr * | getInit () const |
| Expr * | getInc () const |
| Expr * | getIsLastIterVariable () const |
| Expr * | getLowerBoundVariable () const |
| Expr * | getUpperBoundVariable () const |
| Expr * | getStrideVariable () const |
| Expr * | getEnsureUpperBound () const |
| Expr * | getNextLowerBound () const |
| Expr * | getNextUpperBound () const |
| 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 |
Public Member Functions inherited from clang::OMPExecutableDirective | |
| template<typename SpecificClause > | |
| llvm::iterator_range < specific_clause_iterator < SpecificClause > > | getClausesOfKind () const |
| template<typename SpecificClause > | |
| const SpecificClause * | getSingleClause () const |
| 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). More... | |
| template<typename SpecificClause > | |
| bool | hasClausesOfKind () const |
| Returns true if the current directive has one or more clauses of a specific kind. More... | |
| SourceLocation | getLocStart () const |
| Returns starting location of directive kind. More... | |
| SourceLocation | getLocEnd () const |
| Returns ending location of directive. More... | |
| void | setLocStart (SourceLocation Loc) |
| Set starting location of directive kind. More... | |
| void | setLocEnd (SourceLocation Loc) |
| Set ending location of directive. More... | |
| unsigned | getNumClauses () const |
| Get number of clauses. More... | |
| OMPClause * | getClause (unsigned i) const |
| Returns specified clause. More... | |
| bool | hasAssociatedStmt () const |
| Returns true if directive has associated statement. More... | |
| Stmt * | getAssociatedStmt () const |
| Returns statement associated with the directive. More... | |
| OpenMPDirectiveKind | getDirectiveKind () const |
| child_range | children () |
| ArrayRef< OMPClause * > | clauses () |
| ArrayRef< OMPClause * > | clauses () const |
Static Public Member Functions | |
| static bool | classof (const Stmt *T) |
Static Public Member Functions inherited from clang::OMPExecutableDirective | |
| template<typename SpecificClause > | |
| static llvm::iterator_range < specific_clause_iterator < SpecificClause > > | getClausesOfKind (ArrayRef< OMPClause * > Clauses) |
| static bool | classof (const Stmt *S) |
Protected Member Functions | |
| template<typename T > | |
| OMPLoopDirective (const T *That, StmtClass SC, OpenMPDirectiveKind Kind, SourceLocation StartLoc, SourceLocation EndLoc, unsigned CollapsedNum, unsigned NumClauses, unsigned NumSpecialChildren=0) | |
| Build instance of loop directive of class Kind. More... | |
| 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 | 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 | setCounters (ArrayRef< Expr * > A) |
| void | setPrivateCounters (ArrayRef< Expr * > A) |
| void | setInits (ArrayRef< Expr * > A) |
| void | setUpdates (ArrayRef< Expr * > A) |
| void | setFinals (ArrayRef< Expr * > A) |
Protected Member Functions inherited from clang::OMPExecutableDirective | |
| template<typename T > | |
| OMPExecutableDirective (const T *, StmtClass SC, OpenMPDirectiveKind K, SourceLocation StartLoc, SourceLocation EndLoc, unsigned NumClauses, unsigned NumChildren) | |
| Build instance of directive of class K. More... | |
| void | setClauses (ArrayRef< OMPClause * > Clauses) |
| Sets the list of variables for this clause. More... | |
| void | setAssociatedStmt (Stmt *S) |
| Set the associated statement for the directive. More... | |
Static Protected Member Functions | |
| static unsigned | getArraysOffset (OpenMPDirectiveKind Kind) |
| Offset to the start of children expression arrays. More... | |
| static unsigned | numLoopChildren (unsigned CollapsedNum, OpenMPDirectiveKind Kind) |
| Children number. More... | |
Friends | |
| class | ASTStmtReader |
This is a common base class for loop directives ('omp simd', 'omp for', 'omp for simd' etc.).
It is responsible for the loop code generation.
Definition at line 294 of file StmtOpenMP.h.
|
inlineprotected |
Build instance of loop directive of class Kind.
| SC | Statement class. |
| Kind | Kind of OpenMP directive. |
| StartLoc | Starting location of the directive (directive keyword). |
| EndLoc | Ending location of the directive. |
| CollapsedNum | Number of collapsed loops from 'collapse' clause. |
| NumClauses | Number of clauses. |
| NumSpecialChildren | Number of additional directive-specific stmts. |
Definition at line 383 of file StmtOpenMP.h.
Definition at line 687 of file StmtOpenMP.h.
Definition at line 657 of file StmtOpenMP.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPSimdDirective(), and emitPreCond().
Definition at line 659 of file StmtOpenMP.h.
Definition at line 681 of file StmtOpenMP.h.
Definition at line 683 of file StmtOpenMP.h.
|
inlinestaticprotected |
Offset to the start of children expression arrays.
Definition at line 393 of file StmtOpenMP.h.
References clang::isOpenMPDistributeDirective(), clang::isOpenMPTaskLoopDirective(), and clang::isOpenMPWorksharingDirective().
Referenced by numLoopChildren().
|
inline |
Definition at line 646 of file StmtOpenMP.h.
References clang::OMPExecutableDirective::getAssociatedStmt().
|
inline |
Definition at line 577 of file StmtOpenMP.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPSimdDirective().
|
inline |
Get number of collapsed loops.
Definition at line 567 of file StmtOpenMP.h.
Referenced by setCounters(), setFinals(), setInits(), setPrivateCounters(), and setUpdates().
|
inline |
Definition at line 585 of file StmtOpenMP.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPSimdDirective().
|
inline |
Definition at line 625 of file StmtOpenMP.h.
References clang::OMPExecutableDirective::getDirectiveKind(), clang::isOpenMPTaskLoopDirective(), and clang::isOpenMPWorksharingDirective().
|
inline |
Definition at line 593 of file StmtOpenMP.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPSimdDirective().
|
inline |
Definition at line 589 of file StmtOpenMP.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPSimdDirective().
|
inline |
Definition at line 597 of file StmtOpenMP.h.
References clang::OMPExecutableDirective::getDirectiveKind(), clang::isOpenMPTaskLoopDirective(), and clang::isOpenMPWorksharingDirective().
|
inline |
Definition at line 569 of file StmtOpenMP.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPSimdDirective(), and emitScheduleClause().
|
inline |
Definition at line 573 of file StmtOpenMP.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPSimdDirective().
|
inline |
Definition at line 604 of file StmtOpenMP.h.
References clang::OMPExecutableDirective::getDirectiveKind(), clang::isOpenMPTaskLoopDirective(), and clang::isOpenMPWorksharingDirective().
|
inline |
Definition at line 632 of file StmtOpenMP.h.
References clang::OMPExecutableDirective::getDirectiveKind(), clang::isOpenMPTaskLoopDirective(), and clang::isOpenMPWorksharingDirective().
|
inline |
Definition at line 639 of file StmtOpenMP.h.
References clang::OMPExecutableDirective::getDirectiveKind(), clang::isOpenMPTaskLoopDirective(), and clang::isOpenMPWorksharingDirective().
|
inline |
Definition at line 581 of file StmtOpenMP.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPSimdDirective().
|
inline |
Definition at line 618 of file StmtOpenMP.h.
References clang::OMPExecutableDirective::getDirectiveKind(), clang::isOpenMPTaskLoopDirective(), and clang::isOpenMPWorksharingDirective().
|
inline |
Definition at line 611 of file StmtOpenMP.h.
References clang::OMPExecutableDirective::getDirectiveKind(), clang::isOpenMPTaskLoopDirective(), and clang::isOpenMPWorksharingDirective().
Definition at line 669 of file StmtOpenMP.h.
Referenced by emitPreCond().
Definition at line 671 of file StmtOpenMP.h.
|
inlinestaticprotected |
Children number.
Definition at line 402 of file StmtOpenMP.h.
References getArraysOffset().
Referenced by clang::OMPSimdDirective::Create(), clang::OMPForDirective::Create(), clang::OMPForSimdDirective::Create(), clang::OMPParallelForDirective::Create(), clang::OMPParallelForSimdDirective::Create(), clang::OMPTaskLoopDirective::Create(), clang::OMPTaskLoopSimdDirective::Create(), clang::OMPDistributeDirective::Create(), clang::OMPSimdDirective::CreateEmpty(), clang::OMPForDirective::CreateEmpty(), clang::OMPForSimdDirective::CreateEmpty(), clang::OMPParallelForDirective::CreateEmpty(), clang::OMPParallelForSimdDirective::CreateEmpty(), clang::OMPTaskLoopDirective::CreateEmpty(), clang::OMPTaskLoopSimdDirective::CreateEmpty(), and clang::OMPDistributeDirective::CreateEmpty().
Definition at line 663 of file StmtOpenMP.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitOMPSimdDirective(), and emitPreCond().
Definition at line 665 of file StmtOpenMP.h.
|
inlineprotected |
Definition at line 415 of file StmtOpenMP.h.
Referenced by clang::OMPSimdDirective::Create(), clang::OMPForDirective::Create(), clang::OMPForSimdDirective::Create(), clang::OMPParallelForDirective::Create(), clang::OMPParallelForSimdDirective::Create(), clang::OMPTaskLoopDirective::Create(), clang::OMPTaskLoopSimdDirective::Create(), and clang::OMPDistributeDirective::Create().
|
inlineprotected |
Definition at line 421 of file StmtOpenMP.h.
Referenced by clang::OMPSimdDirective::Create(), clang::OMPForDirective::Create(), clang::OMPForSimdDirective::Create(), clang::OMPParallelForDirective::Create(), clang::OMPParallelForSimdDirective::Create(), clang::OMPTaskLoopDirective::Create(), clang::OMPTaskLoopSimdDirective::Create(), and clang::OMPDistributeDirective::Create().
Definition at line 26 of file StmtOpenMP.cpp.
References getCollapsedNumber().
Referenced by clang::OMPSimdDirective::Create(), clang::OMPForDirective::Create(), clang::OMPForSimdDirective::Create(), clang::OMPParallelForDirective::Create(), clang::OMPParallelForSimdDirective::Create(), clang::OMPTaskLoopDirective::Create(), clang::OMPTaskLoopSimdDirective::Create(), and clang::OMPDistributeDirective::Create().
|
inlineprotected |
Definition at line 454 of file StmtOpenMP.h.
References clang::OMPExecutableDirective::getDirectiveKind(), clang::isOpenMPDistributeDirective(), clang::isOpenMPTaskLoopDirective(), and clang::isOpenMPWorksharingDirective().
Referenced by clang::OMPForDirective::Create(), clang::OMPForSimdDirective::Create(), clang::OMPParallelForDirective::Create(), clang::OMPParallelForSimdDirective::Create(), clang::OMPTaskLoopDirective::Create(), clang::OMPTaskLoopSimdDirective::Create(), and clang::OMPDistributeDirective::Create().
Definition at line 51 of file StmtOpenMP.cpp.
References getCollapsedNumber().
Referenced by clang::OMPSimdDirective::Create(), clang::OMPForDirective::Create(), clang::OMPForSimdDirective::Create(), clang::OMPParallelForDirective::Create(), clang::OMPParallelForSimdDirective::Create(), clang::OMPTaskLoopDirective::Create(), clang::OMPTaskLoopSimdDirective::Create(), and clang::OMPDistributeDirective::Create().
|
inlineprotected |
Definition at line 425 of file StmtOpenMP.h.
Referenced by clang::OMPSimdDirective::Create(), clang::OMPForDirective::Create(), clang::OMPForSimdDirective::Create(), clang::OMPParallelForDirective::Create(), clang::OMPParallelForSimdDirective::Create(), clang::OMPTaskLoopDirective::Create(), clang::OMPTaskLoopSimdDirective::Create(), and clang::OMPDistributeDirective::Create().
|
inlineprotected |
Definition at line 424 of file StmtOpenMP.h.
Referenced by clang::OMPSimdDirective::Create(), clang::OMPForDirective::Create(), clang::OMPForSimdDirective::Create(), clang::OMPParallelForDirective::Create(), clang::OMPParallelForSimdDirective::Create(), clang::OMPTaskLoopDirective::Create(), clang::OMPTaskLoopSimdDirective::Create(), and clang::OMPDistributeDirective::Create().
Definition at line 39 of file StmtOpenMP.cpp.
References getCollapsedNumber().
Referenced by clang::OMPSimdDirective::Create(), clang::OMPForDirective::Create(), clang::OMPForSimdDirective::Create(), clang::OMPParallelForDirective::Create(), clang::OMPParallelForSimdDirective::Create(), clang::OMPTaskLoopDirective::Create(), clang::OMPTaskLoopSimdDirective::Create(), and clang::OMPDistributeDirective::Create().
|
inlineprotected |
Definition at line 426 of file StmtOpenMP.h.
References clang::OMPExecutableDirective::getDirectiveKind(), clang::isOpenMPDistributeDirective(), clang::isOpenMPTaskLoopDirective(), and clang::isOpenMPWorksharingDirective().
Referenced by clang::OMPForDirective::Create(), clang::OMPForSimdDirective::Create(), clang::OMPParallelForDirective::Create(), clang::OMPParallelForSimdDirective::Create(), clang::OMPTaskLoopDirective::Create(), clang::OMPTaskLoopSimdDirective::Create(), and clang::OMPDistributeDirective::Create().
|
inlineprotected |
Definition at line 409 of file StmtOpenMP.h.
Referenced by clang::OMPSimdDirective::Create(), clang::OMPForDirective::Create(), clang::OMPForSimdDirective::Create(), clang::OMPParallelForDirective::Create(), clang::OMPParallelForSimdDirective::Create(), clang::OMPTaskLoopDirective::Create(), clang::OMPTaskLoopSimdDirective::Create(), and clang::OMPDistributeDirective::Create().
|
inlineprotected |
Definition at line 412 of file StmtOpenMP.h.
Referenced by clang::OMPSimdDirective::Create(), clang::OMPForDirective::Create(), clang::OMPForSimdDirective::Create(), clang::OMPParallelForDirective::Create(), clang::OMPParallelForSimdDirective::Create(), clang::OMPTaskLoopDirective::Create(), clang::OMPTaskLoopSimdDirective::Create(), and clang::OMPDistributeDirective::Create().
|
inlineprotected |
Definition at line 433 of file StmtOpenMP.h.
References clang::OMPExecutableDirective::getDirectiveKind(), clang::isOpenMPDistributeDirective(), clang::isOpenMPTaskLoopDirective(), and clang::isOpenMPWorksharingDirective().
Referenced by clang::OMPForDirective::Create(), clang::OMPForSimdDirective::Create(), clang::OMPParallelForDirective::Create(), clang::OMPParallelForSimdDirective::Create(), clang::OMPTaskLoopDirective::Create(), clang::OMPTaskLoopSimdDirective::Create(), and clang::OMPDistributeDirective::Create().
|
inlineprotected |
Definition at line 461 of file StmtOpenMP.h.
References clang::OMPExecutableDirective::getDirectiveKind(), clang::isOpenMPDistributeDirective(), clang::isOpenMPTaskLoopDirective(), and clang::isOpenMPWorksharingDirective().
Referenced by clang::OMPForDirective::Create(), clang::OMPForSimdDirective::Create(), clang::OMPParallelForDirective::Create(), clang::OMPParallelForSimdDirective::Create(), clang::OMPTaskLoopDirective::Create(), clang::OMPTaskLoopSimdDirective::Create(), and clang::OMPDistributeDirective::Create().
|
inlineprotected |
Definition at line 468 of file StmtOpenMP.h.
References clang::OMPExecutableDirective::getDirectiveKind(), clang::isOpenMPDistributeDirective(), clang::isOpenMPTaskLoopDirective(), and clang::isOpenMPWorksharingDirective().
Referenced by clang::OMPForDirective::Create(), clang::OMPForSimdDirective::Create(), clang::OMPParallelForDirective::Create(), clang::OMPParallelForSimdDirective::Create(), clang::OMPTaskLoopDirective::Create(), clang::OMPTaskLoopSimdDirective::Create(), and clang::OMPDistributeDirective::Create().
|
inlineprotected |
Definition at line 418 of file StmtOpenMP.h.
Referenced by clang::OMPSimdDirective::Create(), clang::OMPForDirective::Create(), clang::OMPForSimdDirective::Create(), clang::OMPParallelForDirective::Create(), clang::OMPParallelForSimdDirective::Create(), clang::OMPTaskLoopDirective::Create(), clang::OMPTaskLoopSimdDirective::Create(), and clang::OMPDistributeDirective::Create().
Definition at line 32 of file StmtOpenMP.cpp.
References getCollapsedNumber().
Referenced by clang::OMPSimdDirective::Create(), clang::OMPForDirective::Create(), clang::OMPForSimdDirective::Create(), clang::OMPParallelForDirective::Create(), clang::OMPParallelForSimdDirective::Create(), clang::OMPTaskLoopDirective::Create(), clang::OMPTaskLoopSimdDirective::Create(), and clang::OMPDistributeDirective::Create().
|
inlineprotected |
Definition at line 447 of file StmtOpenMP.h.
References clang::OMPExecutableDirective::getDirectiveKind(), clang::isOpenMPDistributeDirective(), clang::isOpenMPTaskLoopDirective(), and clang::isOpenMPWorksharingDirective().
Referenced by clang::OMPForDirective::Create(), clang::OMPForSimdDirective::Create(), clang::OMPParallelForDirective::Create(), clang::OMPParallelForSimdDirective::Create(), clang::OMPTaskLoopDirective::Create(), clang::OMPTaskLoopSimdDirective::Create(), and clang::OMPDistributeDirective::Create().
Definition at line 45 of file StmtOpenMP.cpp.
References getCollapsedNumber().
Referenced by clang::OMPSimdDirective::Create(), clang::OMPForDirective::Create(), clang::OMPForSimdDirective::Create(), clang::OMPParallelForDirective::Create(), clang::OMPParallelForSimdDirective::Create(), clang::OMPTaskLoopDirective::Create(), clang::OMPTaskLoopSimdDirective::Create(), and clang::OMPDistributeDirective::Create().
|
inlineprotected |
Definition at line 440 of file StmtOpenMP.h.
References clang::OMPExecutableDirective::getDirectiveKind(), clang::isOpenMPDistributeDirective(), clang::isOpenMPTaskLoopDirective(), and clang::isOpenMPWorksharingDirective().
Referenced by clang::OMPForDirective::Create(), clang::OMPForSimdDirective::Create(), clang::OMPParallelForDirective::Create(), clang::OMPParallelForSimdDirective::Create(), clang::OMPTaskLoopDirective::Create(), clang::OMPTaskLoopSimdDirective::Create(), and clang::OMPDistributeDirective::Create().
Definition at line 675 of file StmtOpenMP.h.
Definition at line 677 of file StmtOpenMP.h.
|
friend |
Definition at line 295 of file StmtOpenMP.h.
1.8.6