futhark-0.7.3: src/Futhark/Optimise/MemoryBlockMerging.hs
-- | Merge memory blocks.
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)
-- | Apply the coalescing part of the memory block merging optimisation.
memoryBlockMergingCoalescing :: Pass ExplicitMemory ExplicitMemory
memoryBlockMergingCoalescing =
Pass
"Memory block merging (coalescing)"
"Coalesce the memory blocks of arrays"
coalesceInProg
-- | Apply the reuse part of the memory block merging optimisation.
memoryBlockMergingReuse :: Pass ExplicitMemory ExplicitMemory
memoryBlockMergingReuse =
Pass
"Memory block merging (reuse)"
"Reuse the memory blocks of arrays"
reuseInProg