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

Futhark.Analysis.Alias

Description

Alias analysis of a full Futhark program. Takes as input a program with an arbitrary rep and produces one with aliases. This module does not implement the aliasing logic itself, and derives its information from definitions in Futhark.IR.Prop.Aliases and Futhark.IR.Aliases. The alias information computed here will include transitive aliases (note that this is not what the building blocks do).

Synopsis

Documentation

aliasAnalysis :: (ASTRep rep, CanBeAliased (Op rep)) => Prog rep -> Prog (Aliases rep) Source #

Perform alias analysis on a Futhark program.

Ad-hoc utilities

analyseFun :: (ASTRep rep, CanBeAliased (Op rep)) => FunDef rep -> FunDef (Aliases rep) Source #

Perform alias analysis on function.

analyseStms :: (ASTRep rep, CanBeAliased (Op rep)) => AliasTable -> Stms rep -> (Stms (Aliases rep), AliasesAndConsumed) Source #

Perform alias analysis on statements.

analyseExp :: (ASTRep rep, CanBeAliased (Op rep)) => AliasTable -> Exp rep -> Exp (Aliases rep) Source #

Perform alias analysis on expression.

analyseBody :: (ASTRep rep, CanBeAliased (Op rep)) => AliasTable -> Body rep -> Body (Aliases rep) Source #

Perform alias analysis on Body.

analyseLambda :: (ASTRep rep, CanBeAliased (Op rep)) => AliasTable -> Lambda rep -> Lambda (Aliases rep) Source #

Perform alias analysis on lambda.