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 01:21:02PM -0700, Richard Henderson wrote:
> On Mon, Aug 25, 2003 at 05:43:32PM +0200, Jakub Jelinek wrote:
> > The problem is that at -O scheduling is not done after reload and thus also
> > split_all_insns is not called after reload.
> 
> Huh?
> 
> toplev.c:3363:
> #ifndef STACK_REGS
>   if (optimize > 0)
> #endif
>     split_all_insns (0);
> 
> That even happens at -O0.

That's too early for this testcase.
In .postreload dump the insn is still:
(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)))

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).

	Jakub


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