This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
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~