Reference Guide
2.5.0
|
Public Member Functions | |
def | __init__ (self, alg_invocation, idx, invokes) |
def | unique_args_arrays (self) |
def | unique_args_iscalars (self) |
def | gen_code (self, parent) |
Public Member Functions inherited from psyclone.psyGen.Invoke | |
def | __init__ (self, alg_invocation, idx, schedule_class, invokes, reserved_names=None) |
def | __str__ (self) |
def | invokes (self) |
def | name (self) |
def | alg_unique_args (self) |
def | psy_unique_vars (self) |
def | psy_unique_var_names (self) |
def | schedule (self) |
def | schedule (self, obj) |
def | unique_declarations (self, argument_types, access=None, intrinsic_type=None) |
def | first_access (self, arg_name) |
def | unique_declns_by_intent (self, argument_types, intrinsic_type=None) |
def | gen (self) |
The GOcean specific invoke class. This passes the GOcean specific schedule class to the base class so it creates the one we require. A set of GOcean infrastructure reserved names are also passed to ensure that there are no name clashes. Also overrides the gen_code method so that we generate GOcean specific invocation code and provides three methods which separate arguments that are arrays from arguments that are {integer, real} scalars. :param alg_invocation: Node in the AST describing the invoke call. :type alg_invocation: :py:class:`psyclone.parse.InvokeCall` :param int idx: The position of the invoke in the list of invokes \ contained in the Algorithm. :param invokes: the Invokes object containing this GOInvoke \ object. :type invokes: :py:class:`psyclone.gocean1p0.GOInvokes`
Definition at line 199 of file gocean1p0.py.
def psyclone.gocean1p0.GOInvoke.gen_code | ( | self, | |
parent | |||
) |
Generates GOcean specific invocation code (the subroutine called by the associated invoke call in the algorithm layer). This consists of the PSy invocation subroutine and the declaration of its arguments. :param parent: the node in the generated AST to which to add content. :type parent: :py:class:`psyclone.f2pygen.ModuleGen`
Reimplemented from psyclone.psyGen.Invoke.
Definition at line 255 of file gocean1p0.py.
References psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.name, psyclone.domain.gocean.kernel.psyir.GOceanKernelMetadata.GridArg.name, psyclone.domain.gocean.transformations.gocean_const_loop_bounds_trans.GOConstLoopBoundsTrans.name(), psyclone.domain.gocean.transformations.gocean_move_iteration_boundaries_inside_kernel_trans.GOMoveIterationBoundariesInsideKernelTrans.name(), psyclone.domain.gocean.transformations.gocean_opencl_trans.GOOpenCLTrans.name(), psyclone.domain.lfric.kernel.lfric_kernel_metadata.LFRicKernelMetadata.name, psyclone.domain.nemo.transformations.create_nemo_invoke_schedule_trans.CreateNemoInvokeScheduleTrans.name(), psyclone.domain.nemo.transformations.create_nemo_psy_trans.CreateNemoPSyTrans.name(), psyclone.domain.nemo.transformations.nemo_allarrayrange2loop_trans.NemoAllArrayRange2LoopTrans.name(), psyclone.domain.nemo.transformations.nemo_arrayrange2loop_trans.NemoArrayRange2LoopTrans.name(), psyclone.domain.nemo.transformations.nemo_outerarrayrange2loop_trans.NemoOuterArrayRange2LoopTrans.name(), psyclone.dynamo0p3.DynamoPSy.name(), psyclone.expression.FunctionVar.name, psyclone.expression.NamedArg.name(), psyclone.gocean1p0.GOKernelGridArgument.name(), psyclone.gocean1p0.GOStencil.name(), psyclone.parse.algorithm.FileInfo.name(), psyclone.parse.algorithm.InvokeCall.name(), psyclone.parse.kernel.KernelProcedure.name(), psyclone.parse.kernel.KernelType.name(), psyclone.parse.module_info.ModuleInfo.name(), psyclone.psyad.transformations.assignment_trans.AssignmentTrans.name(), psyclone.psyGen.PSy.name(), psyclone.psyGen.Invoke.name(), psyclone.psyGen.Kern.name(), psyclone.psyGen.CodedKern.name, psyclone.psyGen.Argument.name(), psyclone.psyGen.Transformation.name(), psyclone.psyGen.DummyTransformation.name(), psyclone.psyir.nodes.container.Container.name, psyclone.psyir.nodes.member.Member.name, psyclone.psyir.nodes.reference.Reference.name(), psyclone.psyir.nodes.routine.Routine.name, psyclone.psyir.symbols.symbol.Symbol.name(), psyclone.psyir.transformations.allarrayaccess2loop_trans.AllArrayAccess2LoopTrans.name(), psyclone.psyir.transformations.arrayrange2loop_trans.ArrayRange2LoopTrans.name(), psyclone.psyir.transformations.fold_conditional_return_expressions_trans.FoldConditionalReturnExpressionsTrans.name(), psyclone.psyir.transformations.loop_trans.LoopTrans.name(), psyclone.psyir.transformations.omp_task_trans.OMPTaskTrans.name(), psyclone.psyir.transformations.psy_data_trans.PSyDataTrans.name(), psyclone.transformations.OMPSingleTrans.name(), psyclone.transformations.OMPMasterTrans.name(), psyclone.transformations.OMPParallelTrans.name(), psyclone.transformations.MoveTrans.name(), psyclone.transformations.Dynamo0p3AsyncHaloExchangeTrans.name(), psyclone.transformations.Dynamo0p3KernelConstTrans.name(), psyclone.transformations.ACCEnterDataTrans.name(), psyclone.transformations.ACCRoutineTrans.name(), psyclone.transformations.ACCKernelsTrans.name(), psyclone.transformations.ACCDataTrans.name(), psyclone.transformations.KernelImportsToArguments.name(), psyclone.psyGen.Invoke.psy_unique_var_names(), psyclone.psyGen.Invoke.schedule(), psyclone.psyir.nodes.omp_clauses.OMPScheduleClause.schedule, psyclone.gocean1p0.GOInvoke.unique_args_arrays(), and psyclone.gocean1p0.GOInvoke.unique_args_iscalars().
def psyclone.gocean1p0.GOInvoke.unique_args_arrays | ( | self | ) |
find unique arguments that are arrays (defined as those that are field objects as opposed to scalars or properties of the grid).
Definition at line 228 of file gocean1p0.py.
References psyclone.domain.lfric.lfric_invoke.LFRicInvoke._schedule, psyclone.dynamo0p3.DynMeshes._schedule, psyclone.gocean1p0.GOInvoke._schedule, psyclone.nemo.NemoInvoke._schedule, psyclone.psyGen.Invoke._schedule, and psyclone.psyir.nodes.omp_clauses.OMPScheduleClause._schedule.
def psyclone.gocean1p0.GOInvoke.unique_args_iscalars | ( | self | ) |
:returns: the unique arguments that are scalars of type integer \ (defined as those that are i_scalar 'space'). :rtype: list of str.
Definition at line 239 of file gocean1p0.py.
References psyclone.domain.lfric.lfric_invoke.LFRicInvoke._schedule, psyclone.dynamo0p3.DynMeshes._schedule, psyclone.gocean1p0.GOInvoke._schedule, psyclone.nemo.NemoInvoke._schedule, psyclone.psyGen.Invoke._schedule, and psyclone.psyir.nodes.omp_clauses.OMPScheduleClause._schedule.