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