futhark-0.20.0: An optimising compiler for a functional, array-oriented language.
Safe HaskellSafe-Inferred
LanguageHaskell2010

Futhark.Pass.ExtractKernels.ISRWIM

Description

Interchanging scans with inner maps.

Synopsis

Documentation

iswim :: (MonadBinder m, Lore m ~ SOACS) => Pattern -> SubExp -> Lambda -> [(SubExp, VName)] -> Maybe (m ()) Source #

Interchange Scan With Inner Map. Tries to turn a scan(map) into a @map(scan)

irwim :: (MonadBinder m, Lore m ~ SOACS) => Pattern -> SubExp -> Commutativity -> Lambda -> [(SubExp, VName)] -> Maybe (m ()) Source #

Interchange Reduce With Inner Map. Tries to turn a reduce(map) into a @map(reduce)

rwimPossible :: Lambda -> Maybe (Pattern, Certificates, SubExp, Lambda) Source #

Does this reduce operator contain an inner map, and if so, what does that map look like?