Module dev.civl.abc

Interface OmpExecutableNode

All Superinterfaces:
ASTNode, BlockItemNode, OmpNode, StatementNode
All Known Subinterfaces:
OmpAtomicNode, OmpForNode, OmpParallelNode, OmpSimdNode, OmpSyncNode, OmpWorksharingNode

public interface OmpExecutableNode extends OmpNode, StatementNode
Represents an OpenMP executable Construct.
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
  • .
In the constructor, these children are all set to null.
  • 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

      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

      void setStatementNode(StatementNode statementNode)
      Updates the statement sub-node.
      Parameters:
      statementNode - The node to be used as the statement sub-node.
    • sharedList

      Returns the list of identifier nodes declared by shared clause. There are several possibilities:
      • shared(x, y, z, ...): a non-empty sequence node;
      • shared(): an empty sequence node;
      • no shared clause: null.
      Returns:
      the list of identifier nodes declared by shared clause.
    • setSharedList

      void setSharedList(SequenceNode<IdentifierExpressionNode> list)
      Updates the shared list of this node.
      Parameters:
      list - The list to be used as the shared list.
    • privateList

      Returns the list of identifier nodes declared by private clause. There are several possibilities:
      • private(x, y, z, ...): a non-empty sequence node;
      • private(): an empty sequence node;
      • no private clause: null.
      Returns:
      the list of identifier nodes declared by private clause.
    • setPrivateList

      void setPrivateList(SequenceNode<IdentifierExpressionNode> list)
      Updates the private list of this node.
      Parameters:
      list - The list to be used as the private list.
    • firstprivateList

      Returns the list of identifier nodes declared by firstprivate clause. There are several possibilities:
      • firstprivate(x, y, z, ...): a non-empty sequence node;
      • firstprivate(): an empty sequence node;
      • no firstprivate clause: null.
      Returns:
      the list of identifier nodes declared by firstprivate clause.
    • setFirstprivateList

      void setFirstprivateList(SequenceNode<IdentifierExpressionNode> list)
      Updates the firstprivate list of this node.
      Parameters:
      list - The list to be used as the firstprivate list.
    • lastprivateList

      Returns the list of identifier nodes declared by lastprivate clause. There are several possibilities:
      • lastprivate(x, y, z, ...): a non-empty sequence node;
      • lastprivate(): an empty sequence node;
      • no lastprivate clause: null.
      Returns:
      the list of identifier nodes declared by lastprivate clause.
    • setLastprivateList

      void setLastprivateList(SequenceNode<IdentifierExpressionNode> list)
      Updates the lastprivate list of this node.
      Parameters:
      list - The list to be used as the lastprivate list.
    • copyinList

      Returns the list of identifier nodes declared by copyin clause. There are several possibilities:
      • copyin(x, y, z, ...): a non-empty sequence node;
      • copyin(): an empty sequence node;
      • no copyin clause: null.
      Returns:
    • setCopyinList

      void setCopyinList(SequenceNode<IdentifierExpressionNode> list)
      Updates the copyin list of this node.
      Parameters:
      list - The list to be used as the copyin list.
    • copyprivateList

      Returns the list of identifier nodes declared by copyprivate clause. There are several possibilities:
      • copyprivate(x, y, z, ...): a non-empty sequence node;
      • copyprivate(): an empty sequence node;
      • no copyprivate clause: null.
      Returns:
      the list of identifier nodes declared by copyprivate clause.
    • setCopyprivateList

      void setCopyprivateList(SequenceNode<IdentifierExpressionNode> list)
      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 by reduction clause. There are several possibilities:
      • reduction(operator: x, y, z, ...): the operator and a non-empty sequence node;
      • no reduction clause: null.
      Returns:
      the list of identifier nodes declared by reduction clause.
    • setReductionList

      void setReductionList(SequenceNode<OmpReductionNode> list)
      Updates the reduction list of this node.
      Parameters:
      list - The list to be used as the reduction list.