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

Safe HaskellNone
LanguageHaskell2010

Futhark.Optimise.MemoryBlockMerging.ActualVariables

Description

Find the actual variables that need updating when a variable attribute needs updating. This is different than variable aliasing: Variable aliasing is a theoretical concept, while this module has the practical purpose of finding any extra variables that also need a change when a variable has a change of memory block.

If and DoLoop statements have special requirements, as do some aliasing expressions. We don't want to (just) use the obvious statement variable; sometimes updating the memory block of one variable actually means updating the memory block of other variables as well.

Documentation