This is the mail archive of the gcc@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: [rfc] mainline slush


On Sat, May 21, 2005 at 10:46:19AM +0200, Eric Botcazou wrote:
> We have as initial RTL:
> 
> (insn 35 34 36 1 (set (mem/i:TF (plus:DI (reg/f:DI 103 virtual-stack-vars)
>                 (const_int -5120 [0xffffffffffffec00])) [0 S16 A128])
>         (reg:TF 110 [ D.1221 ])) -1 (nil)
>     (nil))
> 
> and instantiate_virtual_regs_in_insn invokes extract_insn on it.  Previously 
> the instantiate_virtual_regs machinery (instantiate_virtual_regs_1) would 
> have detected that the insn is not valid.

The new implementation of instantiate_virtual_regs requires that the 
insn be valid *before* instantiation.  When you see something like 
this it means there's a bug in the rtl expanders.

The bug is in sparc_emit_float_lib_cmp,

5807              slot0 = assign_stack_temp (TFmode, GET_MODE_SIZE(TFmode), 0);
5808              emit_insn (gen_rtx_SET (VOIDmode, slot0, x));

You have to call validize_mem there.


r~


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