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

On branch  : master

http://hackage.haskell.org/trac/ghc/changeset/8133a9f47b99f4e65ed30551de32ad72c6b61b27

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

commit 8133a9f47b99f4e65ed30551de32ad72c6b61b27
Author: Ian Lynagh <[email protected]>
Date:   Wed Jun 8 19:24:07 2011 +0100

    cmmTopCodeGen no longer takes DynFlags as an argument
    
    It is in the NatM monad, which has DynFlags as part of its state.

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

 compiler/nativeGen/AsmCodeGen.lhs   |    6 +++---
 compiler/nativeGen/PPC/CodeGen.hs   |    8 ++++----
 compiler/nativeGen/SPARC/CodeGen.hs |    8 +++-----
 compiler/nativeGen/X86/CodeGen.hs   |   10 +++++-----
 4 files changed, 15 insertions(+), 17 deletions(-)

diff --git a/compiler/nativeGen/AsmCodeGen.lhs 
b/compiler/nativeGen/AsmCodeGen.lhs
index ae91b62..a5988fc 100644
--- a/compiler/nativeGen/AsmCodeGen.lhs
+++ b/compiler/nativeGen/AsmCodeGen.lhs
@@ -132,7 +132,7 @@ The machine-dependent bits break down as follows:
 -- Top-level of the native codegen
 
 data NcgImpl instr jumpDest = NcgImpl {
-    cmmTopCodeGen             :: DynFlags -> RawCmmTop -> NatM [NatCmmTop 
instr],
+    cmmTopCodeGen             :: RawCmmTop -> NatM [NatCmmTop instr],
     generateJumpTableForInstr :: instr -> Maybe (NatCmmTop instr),
     getJumpDestBlockId        :: jumpDest -> Maybe BlockId,
     canShortcut               :: instr -> Maybe jumpDest,
@@ -759,7 +759,7 @@ apply_mapping ncgImpl ufm (CmmProc info lbl (ListGraph 
blocks))
 
 genMachCode 
        :: DynFlags 
-        -> (DynFlags -> RawCmmTop -> NatM [NatCmmTop instr])
+        -> (RawCmmTop -> NatM [NatCmmTop instr])
        -> RawCmmTop 
        -> UniqSM 
                ( [NatCmmTop instr]
@@ -768,7 +768,7 @@ genMachCode
 genMachCode dflags cmmTopCodeGen cmm_top
   = do { initial_us <- getUs
        ; let initial_st           = mkNatM_State initial_us 0 dflags
-             (new_tops, final_st) = initNat initial_st (cmmTopCodeGen dflags 
cmm_top)
+             (new_tops, final_st) = initNat initial_st (cmmTopCodeGen cmm_top)
              final_delta          = natm_delta final_st
              final_imports        = natm_imports final_st
        ; if   final_delta == 0
diff --git a/compiler/nativeGen/PPC/CodeGen.hs 
b/compiler/nativeGen/PPC/CodeGen.hs
index 7e19f4f..43f3849 100644
--- a/compiler/nativeGen/PPC/CodeGen.hs
+++ b/compiler/nativeGen/PPC/CodeGen.hs
@@ -72,13 +72,13 @@ import FastString
 -- order.
 
 cmmTopCodeGen
-        :: DynFlags
-        -> RawCmmTop
+        :: RawCmmTop
         -> NatM [NatCmmTop Instr]
 
-cmmTopCodeGen dflags (CmmProc info lab (ListGraph blocks)) = do
+cmmTopCodeGen (CmmProc info lab (ListGraph blocks)) = do
   (nat_blocks,statics) <- mapAndUnzipM basicBlockCodeGen blocks
   picBaseMb <- getPicBaseMaybeNat
+  dflags <- getDynFlagsNat
   let proc = CmmProc info lab (ListGraph $ concat nat_blocks)
       tops = proc : concat statics
       os   = platformOS $ targetPlatform dflags
@@ -86,7 +86,7 @@ cmmTopCodeGen dflags (CmmProc info lab (ListGraph blocks)) = 
do
       Just picBase -> initializePicBase_ppc ArchPPC os picBase tops
       Nothing -> return tops
 
-cmmTopCodeGen dflags (CmmData sec dat) = do
+cmmTopCodeGen (CmmData sec dat) = do
   return [CmmData sec dat]  -- no translation, we just use CmmStatic
 
 basicBlockCodeGen
diff --git a/compiler/nativeGen/SPARC/CodeGen.hs 
b/compiler/nativeGen/SPARC/CodeGen.hs
index beb48d6..a4dbbe8 100644
--- a/compiler/nativeGen/SPARC/CodeGen.hs
+++ b/compiler/nativeGen/SPARC/CodeGen.hs
@@ -47,15 +47,13 @@ import Outputable
 import Unique
 
 import Control.Monad   ( mapAndUnzipM )
-import DynFlags
 
 -- | Top level code generation
 cmmTopCodeGen 
-       :: DynFlags
-       -> RawCmmTop 
+       :: RawCmmTop 
        -> NatM [NatCmmTop Instr]
 
-cmmTopCodeGen _
+cmmTopCodeGen
        (CmmProc info lab (ListGraph blocks)) 
  = do  
        (nat_blocks,statics) <- mapAndUnzipM basicBlockCodeGen blocks
@@ -65,7 +63,7 @@ cmmTopCodeGen _
 
        return tops
   
-cmmTopCodeGen _ (CmmData sec dat) = do
+cmmTopCodeGen (CmmData sec dat) = do
   return [CmmData sec dat]  -- no translation, we just use CmmStatic
 
 
diff --git a/compiler/nativeGen/X86/CodeGen.hs 
b/compiler/nativeGen/X86/CodeGen.hs
index 2f3e139..39de19c 100644
--- a/compiler/nativeGen/X86/CodeGen.hs
+++ b/compiler/nativeGen/X86/CodeGen.hs
@@ -82,22 +82,22 @@ if_sse2 sse2 x87 = do
   if b then sse2 else x87
 
 cmmTopCodeGen 
-       :: DynFlags
-       -> RawCmmTop
+       :: RawCmmTop
        -> NatM [NatCmmTop Instr]
 
-cmmTopCodeGen dynflags (CmmProc info lab (ListGraph blocks)) = do
+cmmTopCodeGen (CmmProc info lab (ListGraph blocks)) = do
   (nat_blocks,statics) <- mapAndUnzipM basicBlockCodeGen blocks
   picBaseMb <- getPicBaseMaybeNat
+  dflags <- getDynFlagsNat
   let proc = CmmProc info lab (ListGraph $ concat nat_blocks)
       tops = proc : concat statics
-      os   = platformOS $ targetPlatform dynflags
+      os   = platformOS $ targetPlatform dflags
 
   case picBaseMb of
       Just picBase -> initializePicBase_x86 ArchX86 os picBase tops
       Nothing -> return tops
   
-cmmTopCodeGen _ (CmmData sec dat) = do
+cmmTopCodeGen (CmmData sec dat) = do
   return [CmmData sec dat]  -- no translation, we just use CmmStatic
 
 



_______________________________________________
Cvs-ghc mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/cvs-ghc

Reply via email to