Re: trying to get a registerised alpha build

2006-04-04 Thread Chris Parrott
Just to follow up on this: I have some patches to the mangler for Linux/Alpha that we are currently testing. I have pushed these to the gentoo-haskell darcs repository for the Gentoo Haskell herd to try out. The patches (hopefully) fix the following problems I have discovered with enabling

Re: trying to get a registerised alpha build

2006-04-04 Thread Simon Marlow
Duncan Coutts wrote: On Fri, 2006-03-31 at 11:43 +0100, Simon Marlow wrote: Duncan Coutts wrote: What would you recommend is the bat way for us to verify that each bit of the registerised build is working? If we turn everything on including the mangler and it breaks where do we start

Re: trying to get a registerised alpha build

2006-03-31 Thread Simon Marlow
Duncan Coutts wrote: What would you recommend is the bat way for us to verify that each bit of the registerised build is working? If we turn everything on including the mangler and it breaks where do we start debugging? I usually do this in one big step. Regarding debugging, I just wrote

Re: trying to get a registerised alpha build

2006-03-31 Thread Duncan Coutts
On Fri, 2006-03-31 at 11:43 +0100, Simon Marlow wrote: Duncan Coutts wrote: What would you recommend is the bat way for us to verify that each bit of the registerised build is working? If we turn everything on including the mangler and it breaks where do we start debugging? I usually

Re: trying to get a registerised alpha build

2006-03-30 Thread Duncan Coutts
On Wed, 2006-03-29 at 03:37 +0100, Duncan Coutts wrote: Well the full build finished and appears to work. We're going to try again with what I think is a better fix than just picking another fixed register. Instead of fixing a register we could let gcc pick any suitable register by use a

Re: trying to get a registerised alpha build

2006-03-30 Thread Duncan Coutts
On Thu, 2006-03-30 at 20:23 +0100, Duncan Coutts wrote: Things are very slowly becoming clearer... We compiled a little module with the stage1 compiler. So we get registerised output assembly. It is using machine registers and making tail calls. We've looked through the assembly but we can't

Re: trying to get a registerised alpha build

2006-03-29 Thread Simon Marlow
Duncan Coutts wrote: Well the full build finished and appears to work. We're going to try again with what I think is a better fix than just picking another fixed register. Instead of fixing a register we could let gcc pick any suitable register by use a local C variable. It'd be the same code

Re: trying to get a registerised alpha build

2006-03-28 Thread Simon Marlow
Duncan Coutts wrote: /tmp/ghc9727.hc: In function `s1BE_ret': /tmp/ghc9727.hc:1688: error: unable to find a register to spill in class `R27_REG' /tmp/ghc9727.hc:1688: error: this is the insn: (insn 24 23 26 1 (parallel [ (set (reg/v:DI 14 $14 [ R1 ]) (div:DI (reg:DI

Re: trying to get a registerised alpha build

2006-03-28 Thread Duncan Coutts
On Tue, 2006-03-28 at 14:52 +0100, Simon Marlow wrote: I find the divmoddi_internal_er a bit suspicious. Things often go wrong when gcc is using its builtin functions - you might try -fno-builtin to gcc. We tried that and it made no difference. We did some more investigation and tried

Re: trying to get a registerised alpha build

2006-03-28 Thread Duncan Coutts
On Tue, 2006-03-28 at 19:06 +0100, Duncan Coutts wrote: On Tue, 2006-03-28 at 14:52 +0100, Simon Marlow wrote: I find the divmoddi_internal_er a bit suspicious. Things often go wrong when gcc is using its builtin functions - you might try -fno-builtin to gcc. We tried that and it

Re: trying to get a registerised alpha build

2006-03-28 Thread Duncan Coutts
On Tue, 2006-03-28 at 19:06 +0100, Duncan Coutts wrote: register void *_procedure __asm__($27); #define JMP_(cont) \ do { _procedure = (void *)(cont); \ __DISCARD__(); \ goto *_procedure;

trying to get a registerised alpha build

2006-03-27 Thread Duncan Coutts
More on the porting theme, We've had an unregisterised alpha port in gentoo for some time and two of our alpha devs with an interest in ghc decided to try to get the registerised build working. They started by turning off the mangler and trying to get the register bit working. This is ghc-6.4.1.