- All Superinterfaces:
ASTNode,BlockItemNode,OmpNode,StatementNode
- All Known Subinterfaces:
OmpAtomicNode,OmpForNode,OmpParallelNode,OmpSimdNode,OmpSyncNode,OmpWorksharingNode
Represents an OpenMP executable Construct.
The children of an OmpExecutableNode are:
The children of an OmpExecutableNode are:
- SequenceNode<IdentifierExpressionNode> "sharedList", the list of
identifiers declared by
shared - SequenceNode<IdentifierExpressionNode> "privateList", the list of
identifiers declared by
private - SequenceNode<IdentifierExpressionNode> "firstprivateList", the list
of identifiers declared by
firstprivate - SequenceNode<IdentifierExpressionNode> "lastprivateList", the list
of identifiers declared by
lastprivate - SequenceNode<IdentifierExpressionNode> "copyinList", the list of
identifiers declared by
copyin - SequenceNode<IdentifierExpressionNode> "copyprivateList", the list
of identifiers declared by
copyprivate - SequenceNode<OmpReductionNode> "reductionList", the list of
operators and identifiers declared by
reduction - StatementNode, the statement node affected by this pragma .
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic enumThe kind of this OpenMP statement: PARALLEL: the parallel construct SYNCHRONIZATION: synchronization constructs such as master, critical, barrier, taskwait, taskgroup, atomic, flush, ordered, etc. WORKSHARING: worksharing constructs such as sections (section) and single. SIMD: simd directive, objects of this kind are instances ofOmpSimdNodeNested classes/interfaces inherited from interface dev.civl.abc.ast.node.IF.ASTNode
ASTNode.NodeKindNested classes/interfaces inherited from interface dev.civl.abc.ast.node.IF.statement.BlockItemNode
BlockItemNode.BlockItemKindNested classes/interfaces inherited from interface dev.civl.abc.ast.node.IF.omp.OmpNode
OmpNode.OmpNodeKindNested classes/interfaces inherited from interface dev.civl.abc.ast.node.IF.statement.StatementNode
StatementNode.StatementKind -
Method Summary
Modifier and TypeMethodDescriptionReturns the list of identifier nodes declared bycopyinclause.Returns the list of identifier nodes declared bycopyprivateclause.Returns the list of identifier nodes declared byfirstprivateclause.booleanChecks if this node already has its statement sub-node.Returns the list of identifier nodes declared bylastprivateclause.booleannowait()Returns true iff nowait is applied.Returns the OpenMP statement kind of this node, i.e., either it is a parallel, worksharing or synchronization node.Returns the list of identifier nodes declared byprivateclause.Returns the list of identifier nodes declared byreductionclause.voidUpdates the copyin list of this node.voidUpdates the copyprivate list of this node.voidUpdates the firstprivate list of this node.voidUpdates the lastprivate list of this node.voidsetNowait(boolean value) Updates the nowait flag.voidUpdates the private list of this node.voidUpdates the reduction list of this node.voidUpdates the shared list of this node.voidsetStatementNode(StatementNode statementNode) Updates the statement sub-node.Returns the list of identifier nodes declared bysharedclause.Returns the statement node affected by this OpenMP pragma.Methods inherited from interface dev.civl.abc.ast.node.IF.ASTNode
addAllTransformAnnotations, addTransformAnnotation, child, childIndex, children, diff, equiv, getAttribute, getOwner, getScope, getSource, id, keepOnly, nextDFS, nodeKind, numChildren, parent, prettyPrint, prettyRepresentation, prettyRepresentation, print, remove, removeChild, removeTransformAnnotation, setAttribute, setChild, setId, setOwner, setScope, toString, transformAnnotationsMethods inherited from interface dev.civl.abc.ast.node.IF.statement.BlockItemNode
blockItemKindMethods inherited from interface dev.civl.abc.ast.node.IF.omp.OmpNode
ompNodeKindMethods inherited from interface dev.civl.abc.ast.node.IF.statement.StatementNode
copy, statementKind
-
Method Details
-
isComplete
boolean isComplete()Checks if this node already has its statement sub-node.- Returns:
- true iff the statement sub-node is not null.
-
ompExecutableKind
OmpExecutableNode.OmpExecutableKind ompExecutableKind()Returns the OpenMP statement kind of this node, i.e., either it is a parallel, worksharing or synchronization node.- Returns:
- the OpenMP statement kind of this node.
-
nowait
boolean nowait()Returns true iff nowait is applied.- Returns:
- true iff nowait is applied.
-
setNowait
void setNowait(boolean value) Updates the nowait flag.- Parameters:
value- The value to be used to update the nowait flag.
-
statementNode
StatementNode statementNode()Returns the statement node affected by this OpenMP pragma. e.g., the following code is represented as an OpenMP parallel node with the following compound statements as its statement node.
#prama omp parallel { ...//statements }- Returns:
- the statement node affected by this OpenMP pragma.
-
setStatementNode
Updates the statement sub-node.- Parameters:
statementNode- The node to be used as the statement sub-node.
-
privateList
SequenceNode<IdentifierExpressionNode> privateList()Returns the list of identifier nodes declared byprivateclause. There are several possibilities:private(x, y, z, ...): a non-empty sequence node;private(): an empty sequence node;- no
privateclause: null.
- Returns:
- the list of identifier nodes declared by
privateclause.
-
setPrivateList
Updates the private list of this node.- Parameters:
list- The list to be used as the private list.
-
firstprivateList
SequenceNode<IdentifierExpressionNode> firstprivateList()Returns the list of identifier nodes declared byfirstprivateclause. There are several possibilities:firstprivate(x, y, z, ...): a non-empty sequence node;firstprivate(): an empty sequence node;- no
firstprivateclause: null.
- Returns:
- the list of identifier nodes declared by
firstprivateclause.
-
setFirstprivateList
Updates the firstprivate list of this node.- Parameters:
list- The list to be used as the firstprivate list.
-
lastprivateList
SequenceNode<IdentifierExpressionNode> lastprivateList()Returns the list of identifier nodes declared bylastprivateclause. There are several possibilities:lastprivate(x, y, z, ...): a non-empty sequence node;lastprivate(): an empty sequence node;- no
lastprivateclause: null.
- Returns:
- the list of identifier nodes declared by
lastprivateclause.
-
setLastprivateList
Updates the lastprivate list of this node.- Parameters:
list- The list to be used as the lastprivate list.
-
copyinList
SequenceNode<IdentifierExpressionNode> copyinList()Returns the list of identifier nodes declared bycopyinclause. There are several possibilities:copyin(x, y, z, ...): a non-empty sequence node;copyin(): an empty sequence node;- no
copyinclause: null.
- Returns:
-
setCopyinList
Updates the copyin list of this node.- Parameters:
list- The list to be used as the copyin list.
-
copyprivateList
SequenceNode<IdentifierExpressionNode> copyprivateList()Returns the list of identifier nodes declared bycopyprivateclause. There are several possibilities:copyprivate(x, y, z, ...): a non-empty sequence node;copyprivate(): an empty sequence node;- no
copyprivateclause: null.
- Returns:
- the list of identifier nodes declared by
copyprivateclause.
-
setCopyprivateList
Updates the copyprivate list of this node.- Parameters:
list- The list to be used as the copyprivate list.
-
reductionList
SequenceNode<OmpReductionNode> reductionList()Returns the list of identifier nodes declared byreductionclause. There are several possibilities:reduction(operator: x, y, z, ...): the operator and a non-empty sequence node;- no
reductionclause: null.
- Returns:
- the list of identifier nodes declared by
reductionclause.
-
setReductionList
Updates the reduction list of this node.- Parameters:
list- The list to be used as the reduction list.
-