[commit: ghc] new-demand: another flag for new worker-wrapper (bdd25e9)

Ilya Sergey ilya at galois.com
Wed Jul 18 23:41:26 CEST 2012


Repository : ssh://darcs.haskell.org//srv/darcs/ghc

On branch  : new-demand

http://hackage.haskell.org/trac/ghc/changeset/bdd25e9ec2c3eb6b966ede34f30c174cf40d21b3

>---------------------------------------------------------------

commit bdd25e9ec2c3eb6b966ede34f30c174cf40d21b3
Author: Ilya Sergey <Ilya.Sergey at cs.kuleuven.be>
Date:   Wed Jul 18 17:28:23 2012 +0100

    another flag for new worker-wrapper

>---------------------------------------------------------------

 compiler/main/DynFlags.hs        |    3 +++
 compiler/simplCore/SimplCore.lhs |    7 ++++---
 mk/build.mk.sample               |    2 +-
 3 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs
index 8dbf955..63b2c00 100644
--- a/compiler/main/DynFlags.hs
+++ b/compiler/main/DynFlags.hs
@@ -487,6 +487,7 @@ data ExtensionFlag
    | Opt_RelaxedLayout
    | Opt_TraditionalRecordSyntax
    | Opt_NewDemandAnalyser
+   | Opt_NewWorkerWrapper
    deriving (Eq, Enum, Show)
 
 -- | Contains not only a collection of 'DynFlag's but also a plethora of
@@ -2197,6 +2198,8 @@ xFlags = [
   ( "IncoherentInstances",              Opt_IncoherentInstances, nop ),
   ( "PackageImports",                   Opt_PackageImports, nop ),
   ( "NewDemandAnalyser",                Opt_NewDemandAnalyser, nop )
+  ( "NewWorkerWrapper",                 Opt_NewWorkerWrapper, nop )
+
   ]
 
 defaultFlags :: [DynFlag]
diff --git a/compiler/simplCore/SimplCore.lhs b/compiler/simplCore/SimplCore.lhs
index 89cfe2f..b849bb4 100644
--- a/compiler/simplCore/SimplCore.lhs
+++ b/compiler/simplCore/SimplCore.lhs
@@ -413,10 +413,11 @@ doCorePass _      CoreDoCompareStrictness   = {-# SCC "StrCompare" #-}
 
 doCorePass dflags CoreDoWorkerWrapper       = {-# SCC "WorkWrap" #-}
                                               if new_ww
-                                              then doPassU (wwTopBinds dflags)
-                                              else doPassU (NWW.wwTopBinds dflags)
+                                              then doPassU (NWW.wwTopBinds dflags)
+                                              else doPassU (wwTopBinds dflags)
                                               where
-                                                new_ww = xopt Opt_NewDemandAnalyser dflags
+                                                new_ww = xopt Opt_NewDemandAnalyser dflags &&
+                                                         xopt Opt_NewWorkerWrapper  dflags
 
 doCorePass dflags CoreDoSpecialising        = {-# SCC "Specialise" #-}
                                               specProgram dflags
diff --git a/mk/build.mk.sample b/mk/build.mk.sample
index 48f61d4..54be169 100644
--- a/mk/build.mk.sample
+++ b/mk/build.mk.sample
@@ -176,7 +176,7 @@ endif
 ifeq "$(BuildFlavour)" "newdmd"
 
 SRC_HC_OPTS        = -H64m -O -fasm
-GhcLibHcOpts       = -O -dcore-lint -XNewDemandAnalyser
+GhcLibHcOpts       = -O -dcore-lint -XNewDemandAnalyser -XNewWorkerWrapper
 GhcStage1HcOpts    = -Rghc-timing -O -fasm 
 GhcStage2HcOpts    = -Rghc-timing -O0 -DDEBUG -Werror
 SplitObjs          = NO





More information about the Cvs-ghc mailing list