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

Safe Haskell | Safe-Inferred
Language | GHC2021

Futhark.Optimise.ArrayLayout.Layout

Contents

- Exposed for testing

Synopsis

- layoutTableFromIndexTable :: Layout rep => PrimExpTable -> IndexTable rep -> LayoutTable
- class Layout rep
- type Permutation = [Int]
- type LayoutTable = Map SegOpName (Map ArrayName (Map IndexExprName Permutation))
- commonPermutationEliminators :: [Int] -> [BodyType] -> Bool

# Documentation

layoutTableFromIndexTable :: Layout rep => PrimExpTable -> IndexTable rep -> LayoutTable Source #

Given an ordering function for `DimAccess`, and an IndexTable, return a LayoutTable. We remove entries with no results after `permutationFromDimAccess`

class Layout rep Source #

Minimal complete definition

permutationFromDimAccess

#### Instances

Instances details

Layout GPU Source # |
Instance details Defined in Futhark.Optimise.ArrayLayout.Layout Methods permutationFromDimAccess :: PrimExpTable -> SegOpName -> ArrayName -> IndexExprName -> [DimAccess GPU] -> Maybe Permutation
Layout MC Source # |
Instance details Defined in Futhark.Optimise.ArrayLayout.Layout Methods permutationFromDimAccess :: PrimExpTable -> SegOpName -> ArrayName -> IndexExprName -> [DimAccess MC] -> Maybe Permutation

type Permutation = [Int] Source #

type LayoutTable = Map SegOpName (Map ArrayName (Map IndexExprName Permutation)) Source #

# Exposed for testing

commonPermutationEliminators :: [Int] -> [BodyType] -> Bool Source #

Reasons common to all backends to not manifest an array.