module Futhark.Optimise.MemoryBlockMerging
( memoryBlockMergingCoalescing
, memoryBlockMergingReuse
) where
import Futhark.Pass
import Futhark.Representation.ExplicitMemory (ExplicitMemory)
import Futhark.Optimise.MemoryBlockMerging.Coalescing (coalesceInProg)
import Futhark.Optimise.MemoryBlockMerging.Reuse (reuseInProg)
memoryBlockMergingCoalescing :: Pass ExplicitMemory ExplicitMemory
memoryBlockMergingCoalescing =
Pass
"Memory block merging (coalescing)"
"Coalesce the memory blocks of arrays"
coalesceInProg
memoryBlockMergingReuse :: Pass ExplicitMemory ExplicitMemory
memoryBlockMergingReuse =
Pass
"Memory block merging (reuse)"
"Reuse the memory blocks of arrays"
reuseInProg