This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: ppc64 floating point usage [was Re: PPC64 Compiler bug !!]
> Date: Sun, 10 Aug 2003 16:11:05 +0930
> From: Alan Modra <amodra@bigpond.net.au>
> fpcount.c:9: error: unable to generate reloads for:
> (jump_insn:HI 79 30 97 2 (parallel [
> (set (pc)
> (if_then_else (eq (reg/v:DI 32 f0 [orig:120 c ] [120])
> (const_int 1 [0x1]))
> (label_ref 80)
> (pc)))
> (set (reg/v:DI 32 f0 [orig:120 c ] [120])
> (plus:DI (reg/v:DI 32 f0 [orig:120 c ] [120])
> (const_int -1 [0xffffffffffffffff])))
> (clobber (scratch:CC))
> (clobber (scratch:DI))
> ]) 565 {*ctrdi_internal5} (insn_list:REG_DEP_ANTI 30 (nil))
> (expr_list:REG_UNUSED (scratch:CC)
> (expr_list:REG_UNUSED (scratch:DI)
> (expr_list:REG_BR_PROB (const_int 3600 [0xe10])
> (nil)))))
> fpcount.c:12: internal compiler error: in find_reloads, at reload.c:3647
That's the long-standing bug where reload can't put reloads on output
operands of branches because it was written before we had
insert_insn_on_edge. To fix this, you should fix reload, not hack the
port to work around it.
--
- Geoffrey Keating <geoffk@geoffk.org>