diff options
author | Ben.Lippmeier@anu.edu.au <unknown> | 2009-02-15 05:51:58 +0000 |
---|---|---|
committer | Ben.Lippmeier@anu.edu.au <unknown> | 2009-02-15 05:51:58 +0000 |
commit | b04a210e26ca57242fd052f2aa91011a80b76299 (patch) | |
tree | 6f26993cc3ef37f4555087bd80da4195edcda4ed /compiler/ghc.cabal.in | |
parent | 77ed23d51b968505b3ad8541c075657ae94f0ea3 (diff) | |
download | haskell-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.in | 24 |
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 |