[commit: ghc] master: Small refactoring (83e8244)
Ian Lynagh
igloo at earth.li
Fri Jul 15 21:52:42 CEST 2011
Repository : ssh://darcs.haskell.org//srv/darcs/ghc
On branch : master
http://hackage.haskell.org/trac/ghc/changeset/83e8244fc16182d28a7b4e6357984051cd089f06
>---------------------------------------------------------------
commit 83e8244fc16182d28a7b4e6357984051cd089f06
Author: Ian Lynagh <igloo at earth.li>
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
More information about the Cvs-ghc
mailing list