Reference Guide
2.5.0
|
Public Member Functions | |
def | __init__ (self, **kwargs) |
def | gen_code (self, parent) |
def | lower_to_language_level (self) |
def | begin_string (self) |
def | end_string (self) |
def | validate_global_constraints (self) |
Public Member Functions inherited from psyclone.psyir.nodes.omp_directives.OMPParallelDirective | |
def | default_clause (self) |
def | private_clause (self) |
def | infer_sharing_attributes (self) |
Public Member Functions inherited from psyclone.psyir.nodes.directive.RegionDirective | |
def | __init__ (self, ast=None, children=None, parent=None) |
def | dir_body (self) |
def | clauses (self) |
def | gen_post_region_code (self, parent) |
Public Member Functions inherited from psyclone.psyir.nodes.directive.Directive | |
def | create_data_movement_deep_copy_refs (self) |
Public Member Functions inherited from psyclone.psyir.nodes.node.Node | |
def | __init__ (self, ast=None, children=None, parent=None, annotations=None) |
def | coloured_name (self, colour=True) |
def | __str__ (self) |
def | ast (self) |
def | ast_end (self) |
def | ast (self, ast) |
def | ast_end (self, ast_end) |
def | annotations (self) |
def | dag (self, file_name='dag', file_format='svg') |
def | dag_gen (self, graph) |
def | dag_name (self) |
def | args (self) |
def | backward_dependence (self) |
def | forward_dependence (self) |
def | is_valid_location (self, new_node, position="before") |
def | depth (self) |
def | view (self, depth=0, colour=True, indent=" ", _index=None) |
def | addchild (self, child, index=None) |
def | children (self) |
def | children (self, my_children) |
def | parent (self) |
def | siblings (self) |
def | has_constructor_parent (self) |
def | position (self) |
def | abs_position (self) |
def | root (self) |
def | sameParent (self, node_2) |
def | walk (self, my_type, stop_type=None, depth=None) |
def | get_sibling_lists (self, my_type, stop_type=None) |
def | ancestor (self, my_type, excluding=None, include_self=False, limit=None, shared_with=None) |
def | kernels (self) |
def | following (self, routine=True) |
def | preceding (self, reverse=False, routine=True) |
def | immediately_precedes (self, node_2) |
def | immediately_follows (self, node_1) |
def | coded_kernels (self) |
def | loops (self) |
def | reductions (self, reprod=None) |
def | is_openmp_parallel (self) |
def | reference_accesses (self, var_accesses) |
def | scope (self) |
def | replace_with (self, node, keep_name_in_context=True) |
def | pop_all_children (self) |
def | detach (self) |
def | copy (self) |
def | debug_string (self) |
def | origin_string (self) |
def | update_signal (self) |
def | path_from (self, ancestor) |
Public Member Functions inherited from psyclone.psyir.nodes.commentable_mixin.CommentableMixin | |
def | preceding_comment (self) |
def | preceding_comment (self, comment) |
def | inline_comment (self) |
def | inline_comment (self, comment) |
Public Member Functions inherited from psyclone.psyir.nodes.omp_directives.OMPDoDirective | |
def | __init__ (self, omp_schedule="none", collapse=None, reprod=None, **kwargs) |
def | __eq__ (self, other) |
def | collapse (self) |
def | collapse (self, value) |
def | node_str (self, colour=True) |
def | omp_schedule (self) |
def | omp_schedule (self, value) |
def | reprod (self) |
def | reprod (self, value) |
Additional Inherited Members | |
Static Public Member Functions inherited from psyclone.psyir.nodes.omp_directives.OMPParallelDirective | |
def | create (children=None) |
Public Attributes inherited from psyclone.psyir.nodes.node.Node | |
position | |
Public Attributes inherited from psyclone.psyir.nodes.omp_directives.OMPDoDirective | |
collapse | |
omp_schedule | |
reprod | |
Static Public Attributes inherited from psyclone.psyir.nodes.node.Node | |
int | START_DEPTH = 0 |
int | START_POSITION = 0 |
valid_annotations = tuple() | |
Class for the !$OMP PARALLEL DO directive. This inherits from both OMPParallelDirective (because it creates a new OpenMP thread-parallel region) and OMPDoDirective (because it causes a loop to be parallelised). :param kwargs: additional keyword arguments provided to the PSyIR node. :type kwargs: unwrapped dict.
Definition at line 2182 of file omp_directives.py.
def psyclone.psyir.nodes.omp_directives.OMPParallelDoDirective.begin_string | ( | self | ) |
Returns the beginning statement of this directive, i.e. "omp parallel do ...". The visitor is responsible for adding the correct directive beginning (e.g. "!$"). :returns: the beginning statement for this directive. :rtype: str
Reimplemented from psyclone.psyir.nodes.omp_directives.OMPParallelDirective.
Definition at line 2315 of file omp_directives.py.
References psyclone.psyir.nodes.acc_directives.ACCLoopDirective._collapse, psyclone.psyir.nodes.omp_directives.OMPDoDirective._collapse, psyclone.psyir.nodes.omp_directives.OMPLoopDirective._collapse, and psyclone.psyir.nodes.omp_directives.OMPDoDirective._reduction_string().
def psyclone.psyir.nodes.omp_directives.OMPParallelDoDirective.end_string | ( | self | ) |
Returns the end (or closing) statement of this directive, i.e. "omp end parallel do". The visitor is responsible for adding the correct directive beginning (e.g. "!$"). :returns: the end statement for this directive. :rtype: str
Reimplemented from psyclone.psyir.nodes.omp_directives.OMPParallelDirective.
Definition at line 2330 of file omp_directives.py.
def psyclone.psyir.nodes.omp_directives.OMPParallelDoDirective.gen_code | ( | self, | |
parent | |||
) |
Generate the f2pygen AST entries in the Schedule for this OpenMP directive. TODO #1648: Note that gen_code ignores the collapse clause but the generated code is still valid. Since gen_code is going to be removed and it is only used for LFRic (which does not support GPU offloading that gets improved with the collapse clause) it will not be supported. :param parent: the parent Node in the Schedule to which to add our \ content. :type parent: sub-class of :py:class:`psyclone.f2pygen.BaseGen`
Reimplemented from psyclone.psyir.nodes.omp_directives.OMPParallelDirective.
Definition at line 2227 of file omp_directives.py.
References psyclone.psyir.nodes.omp_directives.OMPDoDirective._omp_schedule, psyclone.psyir.transformations.omp_loop_trans.OMPLoopTrans._omp_schedule, psyclone.psyir.nodes.omp_directives.OMPDoDirective._reduction_string(), psyclone.f2pygen.BaseGen.children(), psyclone.psyGen.InlinedKern.children, psyclone.psyir.nodes.node.Node.children(), psyclone.psyir.nodes.directive.RegionDirective.dir_body(), psyclone.psyir.nodes.acc_directives.ACCParallelDirective.end_string(), psyclone.psyir.nodes.acc_directives.ACCLoopDirective.end_string(), psyclone.psyir.nodes.acc_directives.ACCKernelsDirective.end_string(), psyclone.psyir.nodes.acc_directives.ACCDataDirective.end_string(), psyclone.psyir.nodes.acc_directives.ACCAtomicDirective.end_string(), psyclone.psyir.nodes.omp_directives.OMPSingleDirective.end_string(), psyclone.psyir.nodes.omp_directives.OMPMasterDirective.end_string(), psyclone.psyir.nodes.omp_directives.OMPParallelDirective.end_string(), psyclone.psyir.nodes.omp_directives.OMPTaskloopDirective.end_string(), psyclone.psyir.nodes.omp_directives.OMPDoDirective.end_string(), psyclone.psyir.nodes.omp_directives.OMPParallelDoDirective.end_string(), psyclone.psyir.nodes.omp_directives.OMPTargetDirective.end_string(), psyclone.psyir.nodes.omp_directives.OMPLoopDirective.end_string(), psyclone.psyir.nodes.omp_directives.OMPAtomicDirective.end_string(), psyclone.psyir.nodes.omp_directives.OMPSimdDirective.end_string(), psyclone.psyir.nodes.omp_task_directive.OMPTaskDirective.end_string(), psyclone.psyir.nodes.directive.RegionDirective.gen_post_region_code(), psyclone.psyir.nodes.omp_directives.OMPParallelDirective.infer_sharing_attributes(), psyclone.psyir.nodes.node.Node.reductions(), psyclone.domain.lfric.lfric_kern.LFRicKern.validate_global_constraints(), psyclone.psyir.nodes.acc_directives.ACCRegionDirective.validate_global_constraints(), psyclone.psyir.nodes.acc_directives.ACCLoopDirective.validate_global_constraints(), psyclone.psyir.nodes.acc_directives.ACCAtomicDirective.validate_global_constraints(), psyclone.psyir.nodes.node.Node.validate_global_constraints(), psyclone.psyir.nodes.omp_directives.OMPDeclareTargetDirective.validate_global_constraints(), psyclone.psyir.nodes.omp_directives.OMPTaskwaitDirective.validate_global_constraints(), psyclone.psyir.nodes.omp_directives.OMPSerialDirective.validate_global_constraints(), psyclone.psyir.nodes.omp_directives.OMPParallelDirective.validate_global_constraints(), psyclone.psyir.nodes.omp_directives.OMPTaskloopDirective.validate_global_constraints(), psyclone.psyir.nodes.omp_directives.OMPDoDirective.validate_global_constraints(), psyclone.psyir.nodes.omp_directives.OMPParallelDoDirective.validate_global_constraints(), psyclone.psyir.nodes.omp_directives.OMPLoopDirective.validate_global_constraints(), psyclone.psyir.nodes.omp_directives.OMPAtomicDirective.validate_global_constraints(), psyclone.psyir.nodes.omp_directives.OMPSimdDirective.validate_global_constraints(), and psyclone.psyir.nodes.omp_task_directive.OMPTaskDirective.validate_global_constraints().
def psyclone.psyir.nodes.omp_directives.OMPParallelDoDirective.lower_to_language_level | ( | self | ) |
In-place construction of clauses as PSyIR constructs. The clauses here may need to be updated if code has changed, or be added if not yet present. :returns: the lowered version of this node. :rtype: :py:class:`psyclone.psyir.node.Node`
Reimplemented from psyclone.psyir.nodes.omp_directives.OMPParallelDirective.
Definition at line 2299 of file omp_directives.py.
References psyclone.psyir.nodes.omp_directives.OMPDoDirective._omp_schedule, psyclone.psyir.transformations.omp_loop_trans.OMPLoopTrans._omp_schedule, and psyclone.psyir.nodes.node.Node.addchild().
def psyclone.psyir.nodes.omp_directives.OMPParallelDoDirective.validate_global_constraints | ( | self | ) |
Perform validation checks that can only be done at code-generation time.
Reimplemented from psyclone.psyir.nodes.omp_directives.OMPParallelDirective.
Definition at line 2341 of file omp_directives.py.
References psyclone.psyir.nodes.omp_directives.OMPDoDirective._validate_collapse_value(), and psyclone.psyir.nodes.omp_directives.OMPDoDirective._validate_single_loop().