futhark-0.19.7: src/Futhark/Pass/Simplify.hs
{-# LANGUAGE FlexibleContexts #-}
module Futhark.Pass.Simplify
( simplify,
simplifySOACS,
simplifySeq,
simplifyMC,
simplifyGPU,
simplifyGPUMem,
simplifySeqMem,
simplifyMCMem,
)
where
import qualified Futhark.IR.GPU.Simplify as GPU
import qualified Futhark.IR.GPUMem as GPUMem
import qualified Futhark.IR.MC as MC
import qualified Futhark.IR.MCMem as MCMem
import qualified Futhark.IR.SOACS.Simplify as SOACS
import qualified Futhark.IR.Seq as Seq
import qualified Futhark.IR.SeqMem as SeqMem
import Futhark.IR.Syntax
import Futhark.Pass
simplify ::
(Prog rep -> PassM (Prog rep)) ->
Pass rep rep
simplify = Pass "simplify" "Perform simple enabling optimisations."
simplifySOACS :: Pass SOACS.SOACS SOACS.SOACS
simplifySOACS = simplify SOACS.simplifySOACS
simplifyGPU :: Pass GPU.GPU GPU.GPU
simplifyGPU = simplify GPU.simplifyGPU
simplifySeq :: Pass Seq.Seq Seq.Seq
simplifySeq = simplify Seq.simplifyProg
simplifyMC :: Pass MC.MC MC.MC
simplifyMC = simplify MC.simplifyProg
simplifyGPUMem :: Pass GPUMem.GPUMem GPUMem.GPUMem
simplifyGPUMem = simplify GPUMem.simplifyProg
simplifySeqMem :: Pass SeqMem.SeqMem SeqMem.SeqMem
simplifySeqMem = simplify SeqMem.simplifyProg
simplifyMCMem :: Pass MCMem.MCMem MCMem.MCMem
simplifyMCMem = simplify MCMem.simplifyProg