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

Safe Haskell | Safe-Inferred
Language | GHC2021

Futhark.Optimise.ArrayShortCircuiting.ArrayCoalescing

Description

The bulk of the short-circuiting implementation.

Synopsis

- mkCoalsTab :: MonadFreshNames m => Prog (Aliases SeqMem) -> m (Map Name CoalsTab)
- type CoalsTab = Map VName CoalsEntry
- mkCoalsTabGPU :: MonadFreshNames m => Prog (Aliases GPUMem) -> m (Map Name CoalsTab)
- mkCoalsTabMC :: MonadFreshNames m => Prog (Aliases MCMem) -> m (Map Name CoalsTab)

# Documentation

mkCoalsTab :: MonadFreshNames m => Prog (Aliases SeqMem) -> m (Map Name CoalsTab) Source #

Given a `Prog` in `SegMem` representation, compute the coalescing table by folding over each function.

type CoalsTab = Map VName CoalsEntry Source #

maps a memory-block name to a `CoalsEntry`. Among other things, it contains `vartab`, a map in which each variable associated to that memory block is bound to its `Coalesced` info.

mkCoalsTabGPU :: MonadFreshNames m => Prog (Aliases GPUMem) -> m (Map Name CoalsTab) Source #

Given a `Prog` in `GPUMem` representation, compute the coalescing table by folding over each function.

mkCoalsTabMC :: MonadFreshNames m => Prog (Aliases MCMem) -> m (Map Name CoalsTab) Source #

Given a `Prog` in `MCMem` representation, compute the coalescing table by folding over each function.