diff options
| author | aarne <unknown> | 2005-09-18 21:55:46 +0000 |
|---|---|---|
| committer | aarne <unknown> | 2005-09-18 21:55:46 +0000 |
| commit | db4cf670d078e0e72883b3af1b28e665326027d9 (patch) | |
| tree | 20219be8fb4034f80cec1492aedbf56f080659cc /src/GF/Compile/Compile.hs | |
| parent | 076452779cdfefa45888935ab24ed342d8e56b54 (diff) | |
common subexp elimination
Diffstat (limited to 'src/GF/Compile/Compile.hs')
| -rw-r--r-- | src/GF/Compile/Compile.hs | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/src/GF/Compile/Compile.hs b/src/GF/Compile/Compile.hs index d5874d0e2..13710791d 100644 --- a/src/GF/Compile/Compile.hs +++ b/src/GF/Compile/Compile.hs @@ -5,9 +5,9 @@ -- Stability : (stable) -- Portability : (portable) -- --- > CVS $Date: 2005/06/10 21:04:01 $ +-- > CVS $Date: 2005/09/18 22:55:46 $ -- > CVS $Author: aarne $ --- > CVS $Revision: 1.41 $ +-- > CVS $Revision: 1.42 $ -- -- The top-level compilation chain from source file to gfc\/gfr. ----------------------------------------------------------------------------- @@ -38,6 +38,7 @@ import GF.Compile.CheckGrammar import GF.Compile.Optimize import GF.Compile.GrammarToCanon import GF.Canon.Share +import GF.Canon.Subexpressions (elimSubtermsMod) import qualified GF.Canon.CanonToGrammar as CG @@ -283,7 +284,7 @@ generateModuleCode opts path minfo@(name,info) = do minfo0 <- ioeErr $ redModInfo minfo let oopts = addOptions opts (iOpts (flagsModule minfo)) optim = maybe "share" id $ getOptVal oopts useOptimizer - minfo' <- return $ + minfo1 <- return $ case optim of "parametrize" -> shareModule paramOpt minfo0 -- parametrization and sharing "values" -> shareModule valOpt minfo0 -- tables as courses-of-values @@ -292,6 +293,12 @@ generateModuleCode opts path minfo@(name,info) = do "none" -> minfo0 -- no optimization _ -> shareModule shareOpt minfo0 -- sharing; default + -- do common subexpression elimination if required by flag "subs" + minfo' <- + if oElem elimSubs opts + then ioeErr $ elimSubtermsMod minfo1 + else return minfo1 + -- for resource, also emit gfr. --- Also for incomplete, to create timestamped gfc/gfr files case info of |
