# 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` | Sub-package providing data offload transformations.
`dependency` |
`drhook` | Utility transformations to update or remove calls to DR_HOOK.
`extract` | Transformations sub-package that provides various forms of source-code extraction into standalone `Subroutine` objects.
`field_api` | A set of utility classes for dealing with FIELD API boilerplate in parallel kernels and offload regions.
`hoist_variables` | Multiple transformations to hoist variables especially to hoist temporary arrays.
`idempotence` |
`inline` | Transformations sub-package that provides various forms of source-level code inlining.
`loop_blocking` |
`parallel` | Sub-package with utilities to remove, generate and manipulate parallel regions.
`parametrise` | Parametrise variables.
`pool_allocator` |
`pragma_model` |
`raw_stack_allocator` |
`remove_code` | Collection of utilities to automatically remove code elements or section and to perform Dead Code Elimination.
`routine_signatures` | Collection of utilities and transformations altering routine signatures.
`sanitise` | Sub-package with assorted utility `Transformation` classes to harmonize the look-and-feel of input source code.
`single_column` |
`split_read_write` |
`tests` |
`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.