This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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>


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]