loki.transformations

Sub-package with supported source code transformation passes.

This sub-package includes general source code transformations and bespoke Transformation and Pipeline classes for IFS-specific source-to-source recipes that target GPUs.

Modules

argument_shape

Inter-procedural analysis passes to derive and augment argument array shapes.

array_indexing

Collection of utility routines to deal with common array indexing conversions.

block_index_transformations

build_system

data_offload

drhook

Utility transformations to update or remove calls to DR_HOOK.

extract

hoist_variables

Multiple transformations to hoist variables especially to hoist temporary arrays.

inline

Collection of utility routines to perform code-level force-inlining.

parametrise

Parametrise variables.

pool_allocator

raw_stack_allocator

remove_code

Collection of utilities to automatically remove code elements or section and to perform Dead Code Elimination.

sanitise

A small selection of utility transformations that resolve certain code constructs to unify code structure and make reasoning about Fortran code easier.

single_column

split_read_write

transform_derived_types

Transformations dealing with derived types in subroutines and derived-type arguments in complex calling structures.

transform_loop

Collection of utility routines that provide loop transformations.

transform_region

Collection of utility routines that provide transformations for code regions.

transpile

utilities

Collection of utility routines to deal with general language conversion.