diff options
| author | bjorn <bjorn@bringert.net> | 2008-05-30 13:56:50 +0000 |
|---|---|---|
| committer | bjorn <bjorn@bringert.net> | 2008-05-30 13:56:50 +0000 |
| commit | 7f90087ab9c77ac2e2a57d53b8a985feb45d43f2 (patch) | |
| tree | 03a2f357ee50e01b0582e69cc920814ad8660f80 /src-3.0/GF/Compile | |
| parent | 150940b8704a6a61ed08c6bbd99ba4b05a42c59c (diff) | |
Added setOptimization function to GF.Infra.Options. I will need to do similar things for other options.
Diffstat (limited to 'src-3.0/GF/Compile')
| -rw-r--r-- | src-3.0/GF/Compile/BackOpt.hs | 9 | ||||
| -rw-r--r-- | src-3.0/GF/Compile/Optimize.hs | 3 |
2 files changed, 8 insertions, 4 deletions
diff --git a/src-3.0/GF/Compile/BackOpt.hs b/src-3.0/GF/Compile/BackOpt.hs index 0043d02d8..2814448b4 100644 --- a/src-3.0/GF/Compile/BackOpt.hs +++ b/src-3.0/GF/Compile/BackOpt.hs @@ -27,7 +27,10 @@ import Data.List import qualified GF.Infra.Modules as M import qualified Data.ByteString.Char8 as BS -type OptSpec = [Optimization] +import Data.Set (Set) +import qualified Data.Set as Set + +type OptSpec = Set Optimization shareModule :: OptSpec -> (Ident, SourceModInfo) -> (Ident, SourceModInfo) shareModule opt (i,m) = case m of @@ -42,8 +45,8 @@ shareInfo _ i = i -- the function putting together optimizations shareOptim :: OptSpec -> Ident -> Term -> Term -shareOptim opt c = (if OptValues `elem` opt then values else id) - . (if OptParametrize `elem` opt then factor c 0 else id) +shareOptim opt c = (if OptValues `Set.member` opt then values else id) + . (if OptParametrize `Set.member` opt then factor c 0 else id) -- do even more: factor parametric branches diff --git a/src-3.0/GF/Compile/Optimize.hs b/src-3.0/GF/Compile/Optimize.hs index 9263dcdd9..80ceed16d 100644 --- a/src-3.0/GF/Compile/Optimize.hs +++ b/src-3.0/GF/Compile/Optimize.hs @@ -34,6 +34,7 @@ import GF.Infra.Option import Control.Monad import Data.List +import qualified Data.Set as Set import Debug.Trace @@ -103,7 +104,7 @@ evalResInfo oopts gr (c,info) = case info of comp = if optres then computeConcrete gr else computeConcreteRec gr eIn cat = errIn ("Error optimizing" +++ cat +++ prt c +++ ":") optim = moduleFlag optOptimizations oopts - optres = OptExpand `elem` optim + optres = OptExpand `Set.member` optim evalCncInfo :: |
