From d04adba875d9bb4df8edefc653ec516d901df719 Mon Sep 17 00:00:00 2001 From: Neil Brown Date: Wed, 10 Oct 2007 23:13:01 +0000 Subject: [PATCH] Added a new SimplifyComms module, containing a new (currently dummy) pass, outExprs --- Makefile.am | 1 + transformations/SimplifyComms.hs | 39 ++++++++++++++++++++++++++++++++ 2 files changed, 40 insertions(+) create mode 100644 transformations/SimplifyComms.hs diff --git a/Makefile.am b/Makefile.am index 4ca6c5b..4c0bf14 100644 --- a/Makefile.am +++ b/Makefile.am @@ -46,6 +46,7 @@ CLEANFILES = $(BUILT_SOURCES) tock_SOURCES = transformations/SimplifyExprs.hs transformations/SimplifyTypes.hs tock_SOURCES += transformations/Unnest.hs transformations/UsageCheck.hs transformations/SimplifyProcs.hs +tock_SOURCES += transformations/SimplifyComms.hs tock_SOURCES += frontends/PreprocessOccam.hs frontends/ParseRain.hs frontends/StructureOccam.hs tock_SOURCES += frontends/ParseOccam.hs frontends/RainTypes.hs frontends/RainPasses.hs frontends/ParseUtils.hs tock_SOURCES += frontends/LexOccam.x frontends/LexRain.x diff --git a/transformations/SimplifyComms.hs b/transformations/SimplifyComms.hs new file mode 100644 index 0000000..642f8e8 --- /dev/null +++ b/transformations/SimplifyComms.hs @@ -0,0 +1,39 @@ +{- +Tock: a compiler for parallel languages +Copyright (C) 2007 University of Kent + +This program is free software; you can redistribute it and/or modify it +under the terms of the GNU General Public License as published by the +Free Software Foundation, either version 2 of the License, or (at your +option) any later version. + +This program is distributed in the hope that it will be useful, but +WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +General Public License for more details. + +You should have received a copy of the GNU General Public License along +with this program. If not, see . +-} + +-- | Simplify communications. +module SimplifyComms where + +import Control.Monad.State +import Data.Generics + +import qualified AST as A +import CompState +import Metadata +import Types +import Pass + +simplifyComms :: A.Process -> PassM A.Process +simplifyComms = runPasses passes + where + passes = + [ ("Define temporary variables for outputting expressions", outExprs) + ] + +outExprs :: Data t => t -> PassM t +outExprs = return