psyclone.psyir#
PSyclone Intermediate Representation module. Contains all nodes for the PSyIR, tools and basic transformations (in subdirectories).
Submodules#
psyclone.psyir.backendpsyclone.psyir.commentable_mixinpsyclone.psyir.frontendpsyclone.psyir.nodes- Submodules
psyclone.psyir.nodes.acc_clausespsyclone.psyir.nodes.acc_directivespsyclone.psyir.nodes.acc_mixinspsyclone.psyir.nodes.array_memberpsyclone.psyir.nodes.array_mixin- Classes
ArrayMixinArrayMixin.get_full_range()ArrayMixin.get_lbound_expression()ArrayMixin.get_outer_range_index()ArrayMixin.get_signature_and_indices()ArrayMixin.get_ubound_expression()ArrayMixin.index_of()ArrayMixin.indicesArrayMixin.is_full_range()ArrayMixin.is_lower_bound()ArrayMixin.is_same_array()ArrayMixin.is_upper_bound()ArrayMixin.same_range()
- Classes
psyclone.psyir.nodes.array_of_structures_memberpsyclone.psyir.nodes.array_of_structures_mixinpsyclone.psyir.nodes.array_of_structures_referencepsyclone.psyir.nodes.array_referencepsyclone.psyir.nodes.assignmentpsyclone.psyir.nodes.atomic_mixinpsyclone.psyir.nodes.callpsyclone.psyir.nodes.clausepsyclone.psyir.nodes.codeblockpsyclone.psyir.nodes.containerpsyclone.psyir.nodes.data_sharing_attribute_mixinpsyclone.psyir.nodes.datanodepsyclone.psyir.nodes.directivepsyclone.psyir.nodes.dynamic_omp_task_directivepsyclone.psyir.nodes.extract_nodepsyclone.psyir.nodes.file_containerpsyclone.psyir.nodes.if_blockpsyclone.psyir.nodes.intrinsic_callpsyclone.psyir.nodes.kernel_schedulepsyclone.psyir.nodes.literalpsyclone.psyir.nodes.looppsyclone.psyir.nodes.memberpsyclone.psyir.nodes.node- Functions
- Classes
ChildrenListNodeNode.abs_positionNode.addchild()Node.ancestor()Node.annotationsNode.argsNode.astNode.ast_endNode.backward_dependence()Node.childrenNode.coded_kernels()Node.coloured_name()Node.compute_cached_abs_positions()Node.copy()Node.dag()Node.dag_gen()Node.dag_nameNode.debug_string()Node.depthNode.detach()Node.following()Node.following_node()Node.forward_dependence()Node.get_all_accessed_symbols()Node.get_sibling_lists()Node.has_constructor_parentNode.has_descendant()Node.immediately_follows()Node.immediately_precedes()Node.is_descendant_of()Node.is_openmp_parallel()Node.is_valid_location()Node.kernels()Node.loops()Node.lower_to_language_level()Node.node_str()Node.origin_string()Node.parentNode.path_from()Node.pop_all_children()Node.positionNode.preceding()Node.reductions()Node.reference_accesses()Node.replace_symbols_using()Node.replace_with()Node.rootNode.sameParent()Node.scopeNode.siblingsNode.update_parent_symbol_table()Node.update_signal()Node.validate_global_constraints()Node.view()Node.walk()
psyclone.psyir.nodes.omp_clausespsyclone.psyir.nodes.omp_directives- Classes
OMPRegionDirectiveOMPParallelDirectiveOMPParallelDirective.begin_string()OMPParallelDirective.create()OMPParallelDirective.default_clauseOMPParallelDirective.end_string()OMPParallelDirective.infer_sharing_attributes()OMPParallelDirective.lower_to_language_level()OMPParallelDirective.private_clauseOMPParallelDirective.validate_global_constraints()
OMPSingleDirectiveOMPMasterDirectiveOMPDoDirectiveOMPParallelDoDirectiveOMPSerialDirectiveOMPTaskloopDirectiveOMPTargetDirectiveOMPTaskwaitDirectiveOMPDirectiveOMPStandaloneDirectiveOMPLoopDirectiveOMPDeclareTargetDirectiveOMPAtomicDirectiveOMPSimdDirectiveOMPBarrierDirective
- Classes
psyclone.psyir.nodes.omp_task_directivepsyclone.psyir.nodes.operationpsyclone.psyir.nodes.profile_nodepsyclone.psyir.nodes.psy_data_node- Classes
PSyDataNodePSyDataNode.add_psydata_class_prefix()PSyDataNode.create()PSyDataNode.fortran_modulePSyDataNode.generate_symbols()PSyDataNode.lower_to_language_level()PSyDataNode.module_namePSyDataNode.optionsPSyDataNode.prefixPSyDataNode.psy_data_bodyPSyDataNode.region_identifierPSyDataNode.region_namePSyDataNode.set_region_identifier()PSyDataNode.type_namePSyDataNode.var_name
- Classes
psyclone.psyir.nodes.rangespsyclone.psyir.nodes.read_only_verify_nodepsyclone.psyir.nodes.reference- Classes
ReferenceReference.datatypeReference.enters_scope()Reference.escapes_scope()Reference.get_all_accessed_symbols()Reference.get_signature_and_indices()Reference.is_readReference.is_writeReference.nameReference.next_accesses()Reference.node_str()Reference.previous_accesses()Reference.reference_accesses()Reference.replace_symbols_using()Reference.symbol
- Classes
psyclone.psyir.nodes.return_stmtpsyclone.psyir.nodes.routinepsyclone.psyir.nodes.schedulepsyclone.psyir.nodes.scoping_nodepsyclone.psyir.nodes.statementpsyclone.psyir.nodes.structure_accessor_mixinpsyclone.psyir.nodes.structure_memberpsyclone.psyir.nodes.structure_referencepsyclone.psyir.nodes.value_range_check_nodepsyclone.psyir.nodes.while_loop
- Functions
- Classes
ArrayMemberArrayReferenceArrayOfStructuresMemberArrayOfStructuresReferenceAssignmentAtomicDirectiveTypeAtomicDirectiveMixinBinaryOperationCallCall.append_named_arg()Call.argument_namesCall.argumentsCall.copy()Call.create()Call.get_argument_map()Call.get_callee()Call.get_callees()Call.insert_named_arg()Call.is_available_on_device()Call.is_elementalCall.is_pureCall.node_str()Call.reference_accesses()Call.replace_named_arg()Call.routine
ClauseCodeBlockContainerDataNodeFileContainerIfBlockIntrinsicCallLiteralLoopLoop.create()Loop.dag_nameLoop.enters_scope()Loop.explicitly_private_symbolsLoop.get_all_accessed_symbols()Loop.independent_iterations()Loop.loop_bodyLoop.loop_typeLoop.node_str()Loop.reference_accesses()Loop.replace_symbols_using()Loop.set_loop_type_inference_rules()Loop.start_exprLoop.step_exprLoop.stop_exprLoop.variable
MemberNodeNode.abs_positionNode.addchild()Node.ancestor()Node.annotationsNode.argsNode.astNode.ast_endNode.backward_dependence()Node.childrenNode.coded_kernels()Node.coloured_name()Node.compute_cached_abs_positions()Node.copy()Node.dag()Node.dag_gen()Node.dag_nameNode.debug_string()Node.depthNode.detach()Node.following()Node.following_node()Node.forward_dependence()Node.get_all_accessed_symbols()Node.get_sibling_lists()Node.has_constructor_parentNode.has_descendant()Node.immediately_follows()Node.immediately_precedes()Node.is_descendant_of()Node.is_openmp_parallel()Node.is_valid_location()Node.kernels()Node.loops()Node.lower_to_language_level()Node.node_str()Node.origin_string()Node.parentNode.path_from()Node.pop_all_children()Node.positionNode.preceding()Node.reductions()Node.reference_accesses()Node.replace_symbols_using()Node.replace_with()Node.rootNode.sameParent()Node.scopeNode.siblingsNode.update_parent_symbol_table()Node.update_signal()Node.validate_global_constraints()Node.view()Node.walk()
OperatorClauseOperationRangeReferenceReference.datatypeReference.enters_scope()Reference.escapes_scope()Reference.get_all_accessed_symbols()Reference.get_signature_and_indices()Reference.is_readReference.is_writeReference.nameReference.next_accesses()Reference.node_str()Reference.previous_accesses()Reference.reference_accesses()Reference.replace_symbols_using()Reference.symbol
ReturnRoutineScheduleStatementStructureMemberStructureReferenceUnaryOperationScopingNodeWhileLoopKernelSchedulePSyDataNodePSyDataNode.add_psydata_class_prefix()PSyDataNode.create()PSyDataNode.fortran_modulePSyDataNode.generate_symbols()PSyDataNode.lower_to_language_level()PSyDataNode.module_namePSyDataNode.optionsPSyDataNode.prefixPSyDataNode.psy_data_bodyPSyDataNode.region_identifierPSyDataNode.region_namePSyDataNode.set_region_identifier()PSyDataNode.type_namePSyDataNode.var_name
ExtractNodeProfileNodeReadOnlyVerifyNodeValueRangeCheckNodeDirectiveRegionDirectiveStandaloneDirectiveACCAtomicDirectiveACCDirectiveACCRegionDirectiveACCStandaloneDirectiveACCDataDirectiveACCEnterDataDirectiveACCParallelDirectiveACCLoopDirectiveACCKernelsDirectiveACCUpdateDirectiveACCRoutineDirectiveACCCopyClauseACCCopyInClauseACCCopyOutClauseOMPAtomicDirectiveOMPBarrierDirectiveOMPDirectiveOMPRegionDirectiveOMPStandaloneDirectiveOMPParallelDirectiveOMPParallelDirective.begin_string()OMPParallelDirective.create()OMPParallelDirective.default_clauseOMPParallelDirective.end_string()OMPParallelDirective.infer_sharing_attributes()OMPParallelDirective.lower_to_language_level()OMPParallelDirective.private_clauseOMPParallelDirective.validate_global_constraints()
OMPSerialDirectiveOMPSingleDirectiveOMPMasterDirectiveOMPTaskloopDirectiveOMPTaskDirectiveDynamicOMPTaskDirectiveOMPDoDirectiveOMPParallelDoDirectiveOMPTaskwaitDirectiveOMPTargetDirectiveOMPLoopDirectiveOMPDeclareTargetDirectiveOMPSimdDirectiveOMPTeamsDistributeParallelDoDirectiveOMPTeamsLoopDirectiveOMPGrainsizeClauseOMPNogroupClauseOMPNowaitClauseOMPNumTasksClauseOMPPrivateClauseOMPDefaultClauseOMPReductionClauseOMPScheduleClauseOMPFirstprivateClauseOMPSharedClauseOMPDependClause
- Exceptions
- Submodules
psyclone.psyir.symbols- Submodules
psyclone.psyir.symbols.containersymbolpsyclone.psyir.symbols.data_type_symbolpsyclone.psyir.symbols.datasymbolpsyclone.psyir.symbols.datatypespsyclone.psyir.symbols.generic_interface_symbol- Classes
GenericInterfaceSymbolGenericInterfaceSymbol.RoutineInfoGenericInterfaceSymbol.container_routinesGenericInterfaceSymbol.copy()GenericInterfaceSymbol.copy_properties()GenericInterfaceSymbol.datatypeGenericInterfaceSymbol.external_routinesGenericInterfaceSymbol.get_all_accessed_symbols()GenericInterfaceSymbol.is_elementalGenericInterfaceSymbol.is_pureGenericInterfaceSymbol.replace_symbols_using()GenericInterfaceSymbol.routines
- Classes
psyclone.psyir.symbols.interfacespsyclone.psyir.symbols.intrinsic_symbolpsyclone.psyir.symbols.routinesymbolpsyclone.psyir.symbols.symbolpsyclone.psyir.symbols.symbol_tablepsyclone.psyir.symbols.typed_symbol
- Classes
ArgumentInterfaceArrayTypeAutomaticInterfaceCommonBlockInterfaceContainerSymbolDataSymbolDataTypeDataTypeSymbolDefaultModuleInterfaceGenericInterfaceSymbolGenericInterfaceSymbol.RoutineInfoGenericInterfaceSymbol.container_routinesGenericInterfaceSymbol.copy()GenericInterfaceSymbol.copy_properties()GenericInterfaceSymbol.datatypeGenericInterfaceSymbol.external_routinesGenericInterfaceSymbol.get_all_accessed_symbols()GenericInterfaceSymbol.is_elementalGenericInterfaceSymbol.is_pureGenericInterfaceSymbol.replace_symbols_using()GenericInterfaceSymbol.routines
ImportInterfaceIntrinsicSymbolNoTypePreprocessorInterfaceRoutineSymbolScalarTypeStaticInterfaceStructureTypeSymbolSymbol.VisibilitySymbol.copy()Symbol.copy_properties()Symbol.find_symbol_table()Symbol.get_all_accessed_symbols()Symbol.get_external_symbol()Symbol.interfaceSymbol.is_argumentSymbol.is_arraySymbol.is_array_access()Symbol.is_automaticSymbol.is_commonblockSymbol.is_importSymbol.is_modulevarSymbol.is_staticSymbol.is_unknown_interfaceSymbol.is_unresolvedSymbol.nameSymbol.replace_symbols_using()Symbol.resolve_type()Symbol.specialise()Symbol.visibility
SymbolTableSymbolTable.add()SymbolTable.append_argument()SymbolTable.argument_datasymbolsSymbolTable.argument_listSymbolTable.attach()SymbolTable.automatic_datasymbolsSymbolTable.check_for_clashes()SymbolTable.containersymbolsSymbolTable.copy_external_import()SymbolTable.data_argumentsSymbolTable.datasymbolsSymbolTable.datatypesymbolsSymbolTable.deep_copy()SymbolTable.default_visibilitySymbolTable.detach()SymbolTable.find_or_create()SymbolTable.find_or_create_tag()SymbolTable.get_all_accessed_symbols()SymbolTable.get_reverse_tags_dict()SymbolTable.get_symbols()SymbolTable.get_tags()SymbolTable.imported_symbolsSymbolTable.insert_argument()SymbolTable.is_empty()SymbolTable.iteration_indicesSymbolTable.lookup()SymbolTable.lookup_with_tag()SymbolTable.merge()SymbolTable.new_symbol()SymbolTable.next_available_name()SymbolTable.nodeSymbolTable.parent_symbol_table()SymbolTable.precision_datasymbolsSymbolTable.remove()SymbolTable.rename_symbol()SymbolTable.resolve_imports()SymbolTable.scopeSymbolTable.shallow_copy()SymbolTable.specify_argument_list()SymbolTable.swap()SymbolTable.swap_symbol_properties()SymbolTable.symbolsSymbolTable.symbols_dictSymbolTable.symbols_imported_from()SymbolTable.tags_dictSymbolTable.unresolved_datasymbolsSymbolTable.view()SymbolTable.wildcard_imports()
TypedSymbolUnsupportedFortranTypeUnknownInterfaceUnsupportedTypeUnresolvedInterfaceUnresolvedType
- Exceptions
- Variables
- Submodules
psyclone.psyir.toolspsyclone.psyir.transformations- Submodules
psyclone.psyir.transformations.acc_kernels_transpsyclone.psyir.transformations.acc_update_transpsyclone.psyir.transformations.allarrayaccess2loop_transpsyclone.psyir.transformations.arrayaccess2loop_transpsyclone.psyir.transformations.arrayassignment2loops_transpsyclone.psyir.transformations.async_trans_mixinpsyclone.psyir.transformations.chunk_loop_transpsyclone.psyir.transformations.debug_checksum_transpsyclone.psyir.transformations.extract_transpsyclone.psyir.transformations.fold_conditional_return_expressions_transpsyclone.psyir.transformations.hoist_local_arrays_transpsyclone.psyir.transformations.hoist_loop_bound_expr_transpsyclone.psyir.transformations.hoist_transpsyclone.psyir.transformations.increase_rank_loop_arrays_transpsyclone.psyir.transformations.inline_transpsyclone.psyir.transformations.intrinsics- Submodules
psyclone.psyir.transformations.intrinsics.abs2code_transpsyclone.psyir.transformations.intrinsics.array_reduction_base_transpsyclone.psyir.transformations.intrinsics.dotproduct2code_transpsyclone.psyir.transformations.intrinsics.intrinsic2code_transpsyclone.psyir.transformations.intrinsics.matmul2code_transpsyclone.psyir.transformations.intrinsics.max2code_transpsyclone.psyir.transformations.intrinsics.maxval2loop_transpsyclone.psyir.transformations.intrinsics.min2code_transpsyclone.psyir.transformations.intrinsics.minormax2code_transpsyclone.psyir.transformations.intrinsics.minval2loop_transpsyclone.psyir.transformations.intrinsics.product2loop_transpsyclone.psyir.transformations.intrinsics.sign2code_transpsyclone.psyir.transformations.intrinsics.sum2loop_trans
- Submodules
psyclone.psyir.transformations.loop_fuse_transpsyclone.psyir.transformations.loop_swap_transpsyclone.psyir.transformations.loop_tiling_2d_transpsyclone.psyir.transformations.loop_tiling_transpsyclone.psyir.transformations.loop_transpsyclone.psyir.transformations.mark_routine_for_gpu_mixinpsyclone.psyir.transformations.omp_declare_target_transpsyclone.psyir.transformations.omp_loop_transpsyclone.psyir.transformations.omp_minimise_sync_transpsyclone.psyir.transformations.omp_target_transpsyclone.psyir.transformations.omp_task_transpsyclone.psyir.transformations.omp_taskloop_transpsyclone.psyir.transformations.omp_taskwait_transpsyclone.psyir.transformations.parallel_loop_transpsyclone.psyir.transformations.parallel_region_transpsyclone.psyir.transformations.profile_transpsyclone.psyir.transformations.psy_data_transpsyclone.psyir.transformations.read_only_verify_transpsyclone.psyir.transformations.reference2arrayrange_transpsyclone.psyir.transformations.region_transpsyclone.psyir.transformations.replace_induction_variables_transpsyclone.psyir.transformations.replace_reference_by_literal_transpsyclone.psyir.transformations.scalarisation_transpsyclone.psyir.transformations.transformation_errorpsyclone.psyir.transformations.value_range_check_trans
- Classes
ACCKernelsTransACCUpdateTransAllArrayAccess2LoopTransArrayAccess2LoopTransArrayAssignment2LoopsTransDebugChecksumTransChunkLoopTransExtractTransFoldConditionalReturnExpressionsTransHoistLocalArraysTransHoistLoopBoundExprTransHoistTransIncreaseRankLoopArraysTransInlineTransAbs2CodeTransDotProduct2CodeTransMatmul2CodeTransMax2CodeTransMin2CodeTransSign2CodeTransSum2LoopTransLoopFuseTransLoopSwapTransLoopTilingTransLoopTiling2DTransLoopTransMaxval2LoopTransMinval2LoopTransOMPLoopTransOMPMinimiseSyncTransOMPTargetTransOMPTaskTransOMPTaskwaitTransParallelLoopTransProduct2LoopTransProfileTransPSyDataTransReadOnlyVerifyTransReference2ArrayRangeTransRegionTransReplaceInductionVariablesTransReplaceReferenceByLiteralTransValueRangeCheckTransParallelRegionTransOMPTaskloopTransOMPDeclareTargetTrans
- Exceptions
- Submodules