futhark-0.25.32: An optimising compiler for a functional, array-oriented language.

Safe Haskell | None
Language | GHC2021

Futhark.Passes

Description

Optimisation pipelines.

Synopsis

- standardPipeline :: Pipeline SOACS SOACS
- seqPipeline :: Pipeline SOACS Seq
- gpuPipeline :: Pipeline SOACS GPU
- seqmemPipeline :: Pipeline SOACS SeqMem
- gpumemPipeline :: Pipeline SOACS GPUMem
- mcPipeline :: Pipeline SOACS MC
- mcmemPipeline :: Pipeline SOACS MCMem

# Documentation

standardPipeline :: Pipeline SOACS SOACS Source #

A pipeline used by all current compilers. Performs inlining, fusion, and various forms of cleanup. This pipeline will be followed by another one that deals with parallelism and memory.

seqPipeline :: Pipeline SOACS Seq Source #

The pipeline used by the sequential backends. Turns all parallelism into sequential loops. Includes `standardPipeline`.

gpuPipeline :: Pipeline SOACS GPU Source #

The pipeline used by the CUDA, HIP, and OpenCL backends, but before adding memory information. Includes `standardPipeline`.

seqmemPipeline :: Pipeline SOACS SeqMem Source #

Run `seqPipeline`, then add memory information (and optimise it slightly).

gpumemPipeline :: Pipeline SOACS GPUMem Source #

Run `gpuPipeline`, then add memory information (and optimise it a lot).

mcPipeline :: Pipeline SOACS MC Source #

Run `standardPipeline` and then convert to multicore representation (and do a bunch of optimisation).

mcmemPipeline :: Pipeline SOACS MCMem Source #

Run `mcPipeline` and then add memory information.