Expose the dph packages automatically if -dph-* is set
[ghc-hetmet.git] / compiler / main / DynFlags.hs
index cf1d7e9..3d17361 100644 (file)
@@ -1435,10 +1435,10 @@ dynamic_flags = [
         ------ DPH flags ----------------------------------------------------
 
   , Flag "fdph-seq"
-         (NoArg (upd (setDPHBackend DPHSeq)))
+         (NoArg (setDPHBackend DPHSeq))
          Supported
   , Flag "fdph-par"
-         (NoArg (upd (setDPHBackend DPHPar)))
+         (NoArg (setDPHBackend DPHPar))
          Supported
 
         ------ Compiler flags -----------------------------------------------
@@ -1860,10 +1860,12 @@ setOptLevel n dflags
 --    -fdicts-cheap                     always inline dictionaries
 --    -fmax-simplifier-iterations20     this is necessary sometimes
 --    -fno-spec-constr-threshold        run SpecConstr even for big loops
+--    -fno-spec-constr-count            SpecConstr as much as possible
 --
 setDPHOpt :: DynFlags -> DynFlags
 setDPHOpt dflags = setOptLevel 2 (dflags { maxSimplIterations  = 20
                                          , specConstrThreshold = Nothing
+                                         , specConstrCount     = Nothing
                                          })
                    `dopt_set`   Opt_DictsCheap
                    `dopt_unset` Opt_MethodSharing
@@ -1871,9 +1873,15 @@ setDPHOpt dflags = setOptLevel 2 (dflags { maxSimplIterations  = 20
 data DPHBackend = DPHPar
                 | DPHSeq
 
-setDPHBackend :: DPHBackend -> DynFlags -> DynFlags
-setDPHBackend backend dflags = dflags { dphBackend = backend }
-
+setDPHBackend :: DPHBackend -> DynP ()
+setDPHBackend backend 
+  = do
+      upd $ \dflags -> dflags { dphBackend = backend }
+      exposePackage $ "dph-prim-" ++ suffix backend
+      exposePackage $ "dph-"      ++ suffix backend
+  where
+    suffix DPHPar = "par"
+    suffix DPHSeq = "seq"
 
 setMainIs :: String -> DynP ()
 setMainIs arg