cmmTopCodeGen no longer takes DynFlags as an argument
authorIan Lynagh <igloo@earth.li>
Wed, 8 Jun 2011 18:24:07 +0000 (19:24 +0100)
committerIan Lynagh <igloo@earth.li>
Wed, 8 Jun 2011 18:24:07 +0000 (19:24 +0100)
It is in the NatM monad, which has DynFlags as part of its state.

compiler/nativeGen/AsmCodeGen.lhs
compiler/nativeGen/PPC/CodeGen.hs
compiler/nativeGen/SPARC/CodeGen.hs
compiler/nativeGen/X86/CodeGen.hs

index ae91b62..a5988fc 100644 (file)
@@ -132,7 +132,7 @@ The machine-dependent bits break down as follows:
 -- Top-level of the native codegen
 
 data NcgImpl instr jumpDest = NcgImpl {
 -- 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,
     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 
 
 genMachCode 
        :: DynFlags 
-        -> (DynFlags -> RawCmmTop -> NatM [NatCmmTop instr])
+        -> (RawCmmTop -> NatM [NatCmmTop instr])
        -> RawCmmTop 
        -> UniqSM 
                ( [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
 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
              final_delta          = natm_delta final_st
              final_imports        = natm_imports final_st
        ; if   final_delta == 0
index 7e19f4f..43f3849 100644 (file)
@@ -72,13 +72,13 @@ import FastString
 -- order.
 
 cmmTopCodeGen
 -- order.
 
 cmmTopCodeGen
-        :: DynFlags
-        -> RawCmmTop
+        :: RawCmmTop
         -> NatM [NatCmmTop Instr]
 
         -> 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
   (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
   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
 
       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
   return [CmmData sec dat]  -- no translation, we just use CmmStatic
 
 basicBlockCodeGen
index beb48d6..a4dbbe8 100644 (file)
@@ -47,15 +47,13 @@ import Outputable
 import Unique
 
 import Control.Monad   ( mapAndUnzipM )
 import Unique
 
 import Control.Monad   ( mapAndUnzipM )
-import DynFlags
 
 -- | Top level code generation
 cmmTopCodeGen 
 
 -- | Top level code generation
 cmmTopCodeGen 
-       :: DynFlags
-       -> RawCmmTop 
+       :: RawCmmTop 
        -> NatM [NatCmmTop Instr]
 
        -> NatM [NatCmmTop Instr]
 
-cmmTopCodeGen _
+cmmTopCodeGen
        (CmmProc info lab (ListGraph blocks)) 
  = do  
        (nat_blocks,statics) <- mapAndUnzipM basicBlockCodeGen blocks
        (CmmProc info lab (ListGraph blocks)) 
  = do  
        (nat_blocks,statics) <- mapAndUnzipM basicBlockCodeGen blocks
@@ -65,7 +63,7 @@ cmmTopCodeGen _
 
        return tops
   
 
        return tops
   
-cmmTopCodeGen _ (CmmData sec dat) = do
+cmmTopCodeGen (CmmData sec dat) = do
   return [CmmData sec dat]  -- no translation, we just use CmmStatic
 
 
   return [CmmData sec dat]  -- no translation, we just use CmmStatic
 
 
index 2f3e139..39de19c 100644 (file)
@@ -82,22 +82,22 @@ if_sse2 sse2 x87 = do
   if b then sse2 else x87
 
 cmmTopCodeGen 
   if b then sse2 else x87
 
 cmmTopCodeGen 
-       :: DynFlags
-       -> RawCmmTop
+       :: RawCmmTop
        -> NatM [NatCmmTop Instr]
 
        -> 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
   (nat_blocks,statics) <- mapAndUnzipM basicBlockCodeGen blocks
   picBaseMb <- getPicBaseMaybeNat
+  dflags <- getDynFlagsNat
   let proc = CmmProc info lab (ListGraph $ concat nat_blocks)
       tops = proc : concat statics
   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
   
 
   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
 
 
   return [CmmData sec dat]  -- no translation, we just use CmmStatic