summaryrefslogtreecommitdiff
path: root/compiler/ghc.cabal.in
diff options
context:
space:
mode:
authorBen.Lippmeier@anu.edu.au <unknown>2009-02-15 05:51:58 +0000
committerBen.Lippmeier@anu.edu.au <unknown>2009-02-15 05:51:58 +0000
commitb04a210e26ca57242fd052f2aa91011a80b76299 (patch)
tree6f26993cc3ef37f4555087bd80da4195edcda4ed /compiler/ghc.cabal.in
parent77ed23d51b968505b3ad8541c075657ae94f0ea3 (diff)
downloadhaskell-b04a210e26ca57242fd052f2aa91011a80b76299.tar.gz
NCG: Split up the native code generator into arch specific modules
- nativeGen/Instruction defines a type class for a generic instruction set. Each of the instruction sets we have, X86, PPC and SPARC are instances of it. - The register alloctors use this type class when they need info about a certain register or instruction, such as regUsage, mkSpillInstr, mkJumpInstr, patchRegs.. - nativeGen/Platform defines some data types enumerating the architectures and operating systems supported by the native code generator. - DynFlags now keeps track of the current build platform, and the PositionIndependentCode module uses this to decide what to do instead of relying of #ifdefs. - It's not totally retargetable yet. Some info info about the build target is still hardwired, but I've tried to contain most of it to a single module, TargetRegs. - Moved the SPILL and RELOAD instructions into LiveInstr. - Reg and RegClass now have their own modules, and are shared across all architectures.
Diffstat (limited to 'compiler/ghc.cabal.in')
-rw-r--r--compiler/ghc.cabal.in24
1 files changed, 16 insertions, 8 deletions
diff --git a/compiler/ghc.cabal.in b/compiler/ghc.cabal.in
index 2328eca637..b276943f60 100644
--- a/compiler/ghc.cabal.in
+++ b/compiler/ghc.cabal.in
@@ -454,31 +454,38 @@ Library
Exposed-Modules:
AsmCodeGen
- MachCodeGen
- Regs
- RegsBase
- Instrs
- RegAllocInfo
- PprMach
+ TargetReg
+ NCGMonad
+ Instruction
+ Size
+ Reg
+ RegClass
PprBase
+ PIC
+ Platform
Alpha.Regs
Alpha.RegInfo
Alpha.Instr
Alpha.Ppr
+ Alpha.CodeGen
X86.Regs
X86.RegInfo
X86.Instr
+ X86.Cond
X86.Ppr
+ X86.CodeGen
PPC.Regs
PPC.RegInfo
PPC.Instr
+ PPC.Cond
PPC.Ppr
+ PPC.CodeGen
SPARC.Regs
SPARC.RegInfo
SPARC.Instr
+ SPARC.Cond
SPARC.Ppr
- NCGMonad
- PositionIndependentCode
+ SPARC.CodeGen
RegAlloc.Liveness
RegAlloc.Graph.Main
RegAlloc.Graph.Stats
@@ -488,6 +495,7 @@ Library
RegAlloc.Graph.Spill
RegAlloc.Graph.SpillClean
RegAlloc.Graph.SpillCost
+ RegAlloc.Graph.TrivColorable
RegAlloc.Linear.Main
RegAlloc.Linear.JoinToTargets
RegAlloc.Linear.State