futhark-0.21.10: An optimising compiler for a functional, array-oriented language.
Safe HaskellNone
LanguageHaskell2010

Futhark.Optimise.InPlaceLowering.SubstituteIndices

Description

This module exports facilities for transforming array accesses in a list of Stms (intended to be the bindings in a body). The idea is that you can state that some variable x is in fact an array indexing v[i0,i1,...].

Synopsis

Documentation

substituteIndices :: (MonadFreshNames m, BuilderOps rep, Buildable rep, Aliased rep, LParamInfo rep ~ Type) => IndexSubstitutions -> Stms rep -> m (IndexSubstitutions, Stms rep) Source #

Perform the substitution.

type IndexSubstitution = (Certs, VName, Type, Slice SubExp) Source #

Essentially the components of an Index expression.

type IndexSubstitutions = [(VName, IndexSubstitution)] Source #

A mapping from variable names to the indexing operation they should be replaced with.