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

Safe Haskell | None
Language | GHC2021

Futhark.Optimise.Unstream

Description

Sequentialise any remaining SOACs. It is very important that this is run *after* any access-pattern-related optimisation, because this pass will destroy information.

This pass conceptually contains three subpasses:

1. Sequentialise `Stream` operations, leaving other SOACs intact.
2. Apply whole-program simplification.
3. Sequentialise remaining SOACs.

This is because sequentialisation of streams creates many SOACs operating on single-element arrays, which can be efficiently simplified away, but only *before* they are turned into loops. In principle this pass could be split into multiple, but for now it is kept together.

Synopsis

- unstreamGPU :: Pass GPU GPU
- unstreamMC :: Pass MC MC

# Documentation

unstreamGPU :: Pass GPU GPU Source #

The pass for GPU kernels.

unstreamMC :: Pass MC MC Source #

The pass for multicore.