patch applied (ghc): NCG: Split up the native code generator
into arch specific modules
Simon Marlow
marlowsd at gmail.com
Mon Feb 16 04:28:26 EST 2009
Ben Lippmeier wrote:
> Sat Feb 14 21:51:58 PST 2009 Ben.Lippmeier at anu.edu.au
> * 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.
Nice going Ben! This was long overdue.
Cheers,
Simon
More information about the Cvs-ghc
mailing list