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: [testcase] IA-32 ICE due to not splitted insn


On Mon, Aug 25, 2003 at 02:19:08PM -0700, Richard Henderson wrote:
> On Mon, Aug 25, 2003 at 04:45:54PM -0400, Jakub Jelinek wrote:
> > and only in .flow2 dump it becomes:
> > (insn 313 458 314 48 0x4001b39c (set (mem:DF (plus:SI (reg/f:SI 6 ebp)
> >                 (const_int -32 [0xffffffe0])) [0 k S8 A8])
> >         (const_double:DF -939524096 [0xc8000000] 2.5e+1 [0x0.c8p+5])) 66 {*movdf_integer} (nil)
> >     (expr_list:REG_EQUAL (const_double:DF -939524096 [0xc8000000] 2.5e+1 [0x0.c8p+5])
> >         (nil)))
> > (which needs splitting).
> 
> Eh?  When does this happen?

cleanup_cfg -> ... flow_find_cross_jump -> insns_match_p
971               if (s1 != 0 && s2 != 0
972                   && rtx_renumbered_equal_p (SET_DEST (s1), SET_DEST (s2)))
973                 {
974                   validate_change (i1, &SET_SRC (s1), XEXP (equiv1, 0), 1);
975                   validate_change (i2, &SET_SRC (s2), XEXP (equiv2, 0), 1);
976                   if (! rtx_renumbered_equal_p (p1, p2))
977                     cancel_changes (0);
978                   else if (apply_change_group ())
979                     return true;

During postreload there is:
(insn 260 444 261 39 0x4001b39c (set (mem:DF (plus:SI (reg/f:SI 6 ebp)
                (const_int -32 [0xffffffe0])) [0 k S8 A8])
        (reg:DF 10 st(2) [112])) 66 {*movdf_integer} (nil)
    (expr_list:REG_EQUAL (const_double:DF -939524096 [0xc8000000] 2.5e+1 [0x0.c8p+5])
        (nil)))

(jump_insn 261 260 262 39 0x4001b39c (set (pc)
        (label_ref 348)) 368 {jump} (nil)
    (nil))
...
(insn 313 458 314 48 0x4001b39c (set (mem:DF (plus:SI (reg/f:SI 6 ebp)
                (const_int -32 [0xffffffe0])) [0 k S8 A8])
        (reg:DF 9 st(1) [126])) 66 {*movdf_integer} (nil)
    (expr_list:REG_EQUAL (const_double:DF -939524096 [0xc8000000] 2.5e+1 [0x0.c8p+5])
        (nil)))

(jump_insn 314 313 315 48 0x4001b39c (set (pc)
        (label_ref 348)) 368 {jump} (nil)
    (nil))

	Jakub


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