Repository : ssh://darcs.haskell.org//srv/darcs/ghc On branch : ghc-7.2
http://hackage.haskell.org/trac/ghc/changeset/561bd27ef39867b70a9d622c0a752e4acbfd957d >--------------------------------------------------------------- commit 561bd27ef39867b70a9d622c0a752e4acbfd957d Author: Ian Lynagh <[email protected]> Date: Fri Jul 15 19:37:50 2011 +0100 Small refactoring >--------------------------------------------------------------- compiler/nativeGen/AsmCodeGen.lhs | 4 ++-- compiler/nativeGen/PPC/CodeGen.hs | 7 +++---- compiler/nativeGen/SPARC/CodeGen.hs | 19 ++++++++++--------- compiler/nativeGen/X86/CodeGen.hs | 7 +++---- 4 files changed, 18 insertions(+), 19 deletions(-) diff --git a/compiler/nativeGen/AsmCodeGen.lhs b/compiler/nativeGen/AsmCodeGen.lhs index ec52266..94b0258 100644 --- a/compiler/nativeGen/AsmCodeGen.lhs +++ b/compiler/nativeGen/AsmCodeGen.lhs @@ -133,7 +133,7 @@ The machine-dependent bits break down as follows: -- Top-level of the native codegen data NcgImpl statics instr jumpDest = NcgImpl { - cmmTopCodeGen :: Platform -> RawCmmTop -> NatM [NatCmmTop statics instr], + cmmTopCodeGen :: RawCmmTop -> NatM [NatCmmTop statics instr], generateJumpTableForInstr :: instr -> Maybe (NatCmmTop statics instr), getJumpDestBlockId :: jumpDest -> Maybe BlockId, canShortcut :: instr -> Maybe jumpDest, @@ -361,7 +361,7 @@ cmmNativeGen dflags ncgImpl us cmm count -- generate native code from cmm let ((native, lastMinuteImports), usGen) = {-# SCC "genMachCode" #-} - initUs us $ genMachCode dflags (cmmTopCodeGen ncgImpl platform) opt_cmm + initUs us $ genMachCode dflags (cmmTopCodeGen ncgImpl) opt_cmm dumpIfSet_dyn dflags Opt_D_dump_asm_native "Native code" diff --git a/compiler/nativeGen/PPC/CodeGen.hs b/compiler/nativeGen/PPC/CodeGen.hs index 4560266..a0e3ae9 100644 --- a/compiler/nativeGen/PPC/CodeGen.hs +++ b/compiler/nativeGen/PPC/CodeGen.hs @@ -66,11 +66,10 @@ import FastString -- order. cmmTopCodeGen - :: Platform - -> RawCmmTop + :: RawCmmTop -> NatM [NatCmmTop CmmStatics Instr] -cmmTopCodeGen _ (CmmProc info lab (ListGraph blocks)) = do +cmmTopCodeGen (CmmProc info lab (ListGraph blocks)) = do (nat_blocks,statics) <- mapAndUnzipM basicBlockCodeGen blocks picBaseMb <- getPicBaseMaybeNat dflags <- getDynFlagsNat @@ -81,7 +80,7 @@ cmmTopCodeGen _ (CmmProc info lab (ListGraph blocks)) = do Just picBase -> initializePicBase_ppc ArchPPC 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 basicBlockCodeGen diff --git a/compiler/nativeGen/SPARC/CodeGen.hs b/compiler/nativeGen/SPARC/CodeGen.hs index 817fa47..6f454a3 100644 --- a/compiler/nativeGen/SPARC/CodeGen.hs +++ b/compiler/nativeGen/SPARC/CodeGen.hs @@ -41,6 +41,7 @@ import OldCmm import CLabel -- The rest: +import DynFlags import StaticFlags ( opt_PIC ) import OrdList import Outputable @@ -50,21 +51,21 @@ import Unique import Control.Monad ( mapAndUnzipM ) -- | Top level code generation -cmmTopCodeGen :: Platform - -> RawCmmTop +cmmTopCodeGen :: RawCmmTop -> NatM [NatCmmTop CmmStatics Instr] -cmmTopCodeGen platform - (CmmProc info lab (ListGraph blocks)) +cmmTopCodeGen (CmmProc info lab (ListGraph blocks)) = do - (nat_blocks,statics) <- mapAndUnzipM (basicBlockCodeGen platform) blocks + dflags <- getDynFlagsNat + let platform = targetPlatform dflags + (nat_blocks,statics) <- mapAndUnzipM (basicBlockCodeGen platform) blocks - let proc = CmmProc info lab (ListGraph $ concat nat_blocks) - let tops = proc : concat statics + let proc = CmmProc info lab (ListGraph $ concat nat_blocks) + let tops = proc : concat statics - return tops + 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 00d9a5b..49ac543 100644 --- a/compiler/nativeGen/X86/CodeGen.hs +++ b/compiler/nativeGen/X86/CodeGen.hs @@ -79,11 +79,10 @@ if_sse2 sse2 x87 = do if b then sse2 else x87 cmmTopCodeGen - :: Platform - -> RawCmmTop + :: RawCmmTop -> NatM [NatCmmTop (Alignment, CmmStatics) Instr] -cmmTopCodeGen _ (CmmProc info lab (ListGraph blocks)) = do +cmmTopCodeGen (CmmProc info lab (ListGraph blocks)) = do (nat_blocks,statics) <- mapAndUnzipM basicBlockCodeGen blocks picBaseMb <- getPicBaseMaybeNat dflags <- getDynFlagsNat @@ -95,7 +94,7 @@ cmmTopCodeGen _ (CmmProc info lab (ListGraph blocks)) = do Just picBase -> initializePicBase_x86 ArchX86 os picBase tops Nothing -> return tops -cmmTopCodeGen _ (CmmData sec dat) = do +cmmTopCodeGen (CmmData sec dat) = do return [CmmData sec (1, dat)] -- no translation, we just use CmmStatic _______________________________________________ Cvs-ghc mailing list [email protected] http://www.haskell.org/mailman/listinfo/cvs-ghc
