summaryrefslogtreecommitdiff
path: root/compiler/codeGen
diff options
context:
space:
mode:
authorIan Lynagh <igloo@earth.li>2012-06-20 15:42:32 +0100
committerIan Lynagh <igloo@earth.li>2012-06-20 15:42:32 +0100
commit8323847d588f2dbd13fd698aa2125fe5b90c482c (patch)
treea3083b1f75e9471c651ea3bbb4663aa7600b5f78 /compiler/codeGen
parentad3d65cd3d3d6e3831e5f842d27bbb6c33539a83 (diff)
downloadhaskell-8323847d588f2dbd13fd698aa2125fe5b90c482c.tar.gz
Make -fgransim a dynamic flag
Diffstat (limited to 'compiler/codeGen')
-rw-r--r--compiler/codeGen/CgParallel.hs22
1 files changed, 12 insertions, 10 deletions
diff --git a/compiler/codeGen/CgParallel.hs b/compiler/codeGen/CgParallel.hs
index 30771f14de..c86ef9e34a 100644
--- a/compiler/codeGen/CgParallel.hs
+++ b/compiler/codeGen/CgParallel.hs
@@ -16,12 +16,14 @@ module CgParallel(
import CgMonad
import CgCallConv
+import DynFlags
import Id
import OldCmm
-import StaticFlags
import Outputable
import SMRep
+import Control.Monad
+
staticParHdr :: [CmmLit]
-- Parallel header words in a static closure
staticParHdr = []
@@ -37,8 +39,8 @@ staticGranHdr = []
doGranAllocate :: CmmExpr -> Code
-- macro DO_GRAN_ALLOCATE
doGranAllocate _hp
- | not opt_GranMacros = nopC
- | otherwise = panic "doGranAllocate"
+ = do dflags <- getDynFlags
+ when (dopt Opt_GranMacros dflags) $ panic "doGranAllocate"
@@ -48,11 +50,11 @@ granFetchAndReschedule :: [(Id,GlobalReg)] -- Live registers
-> Code
-- Emit code for simulating a fetch and then reschedule.
granFetchAndReschedule regs node_reqd
- | opt_GranMacros && (node `elem` map snd regs || node_reqd)
- = do { fetch
- ; reschedule liveness node_reqd }
- | otherwise
- = nopC
+ = do dflags <- getDynFlags
+ when (dopt Opt_GranMacros dflags &&
+ (node `elem` map snd regs || node_reqd)) $
+ do fetch
+ reschedule liveness node_reqd
where
liveness = mkRegLiveness regs 0 0
@@ -87,8 +89,8 @@ granYield :: [(Id,GlobalReg)] -- Live registers
-> Code
granYield regs node_reqd
- | opt_GranMacros && node_reqd = yield liveness
- | otherwise = nopC
+ = do dflags <- getDynFlags
+ when (dopt Opt_GranMacros dflags && node_reqd) $ yield liveness
where
liveness = mkRegLiveness regs 0 0