Registerised x86_64 port: test version available

Simon Marlow simonmar at microsoft.com
Tue Mar 8 11:08:40 EST 2005


On 08 March 2005 15:59, Duncan Coutts wrote:

> On Tue, 2005-03-08 at 15:16 +0000, Simon Marlow wrote:
>> I've put up an x86_64/Linux registerised build for testing here:
>> 
>> 
>>
http://www.haskell.org/ghc/dist/stable/dist/ghc-6.4-x86_64-unknown-linux
>> .tar.bz2 
>> 
>> This is a binary distribution: ./configure && make -k install.  The
>> -k is necessary because it doesn't have all the docs.  It was built
>> on Fedora FC3.  Note it claims version 6.4, but actually it's
>> 6.4.20050308. 
>> 
>> Still no GHCi, no foreign export dynamic, no native code gen.  But it
>> seems to work (this is a stage 3 build).
> 
> For someone with an amd64 and some spare time:
> 
> So the burning question is: do all those extra registers help? Does
> Haskell code run faster in 64bit mode or 32bit mode?
> 
> Performance graphs on a postcard to the usual address...

I haven't really made full use of the extra registers yet.  The register
mapping is certainly sub-optimal: I didn't use any of the call-clobbered
regs, but almost certainly it will be a good idea to do so.  So far I've
only assigned a single argument register, the same as x86.

Upshot: you're unlikely to get much better performance than the plain
x86 registerised build at the moment.  When I've got some time I'll play
around with more aggressive register assignments (or anyone else is
welcome... just fiddle with the settings in ghc/includes/MachRegs.h, and
don't forget to set the appropriate CALLER_SAVES macro if you pinch a
call-clobbered reg).

Cheers,
	Simon


More information about the Glasgow-haskell-users mailing list