trying to get a registerised alpha build
Simon Marlow
simonmarhaskell at gmail.com
Tue Mar 28 08:52:39 EST 2006
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 24 $24 [77])
> (reg:DI 25 $25 [78])))
> (clobber (reg:DI 23 $23))
> (clobber (reg:DI 28 $28))
> ]) 43 {*divmoddi_internal_er} (insn_list 22 (insn_list 21
> (nil)))
> (expr_list:REG_UNUSED (reg:DI 23 $23)
> (expr_list:REG_UNUSED (reg:DI 28 $28)
> (expr_list:REG_DEAD (reg:DI 25 $25 [78])
> (expr_list:REG_DEAD (reg:DI 24 $24 [77])
> (nil))))))
> /tmp/ghc9727.hc:1688: confused by earlier errors, bailing out
> make[2]: *** [GHC/Base.o] Error 1
> make[1]: *** [all] Error 1
> make[1]: Leaving directory
> `/var/tmp/portage/ghc-6.4.1-r2/work/ghc-6.4.1/libraries'
> make: *** [build] Error 1
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.
> When looking at the MachRegs.h we found that the bit:
> # define NCG_Reserved_I1 22
> # define NCG_Reserved_I2 27
> # define NCG_Reserved_F1 f29
> # define NCG_Reserved_F2 f30
The old NCG register allocator needed to reserve some regs for spilling,
IIRC. The new one doesn't need to.
Cheers,
Simon
More information about the Glasgow-haskell-bugs
mailing list