This is the mail archive of the
mailing list for the GCC project.
Re: PR target/16482: first scheduling pass on SH4
- From: Kaz Kojima <kkojima at rr dot iij4u dot or dot jp>
- To: aoliva at redhat dot com
- Cc: tm_gccmail at kloo dot net, gcc at gcc dot gnu dot org, gcc-patches at gcc dot gnu dot org, joern dot rennecke at st dot com, naveens at noida dot hcltech dot com
- Date: Fri, 29 Oct 2004 11:43:28 +0900 (JST)
- Subject: Re: PR target/16482: first scheduling pass on SH4
- References: <Pine.LNX.firstname.lastname@example.org><email@example.com><firstname.lastname@example.org>
Alexandre Oliva <email@example.com> wrote:
>> * config/sh/sh.c (implicit_r0_use_block): New variable.
>> (may_use_r0_in_reload, find_implicit_r0_use): New.
>> (sh_md_init_global): Initialize and set implicit_r0_use_block.
>> (sh_md_finish_global): Cleanup implicit_r0_use_block if needed.
>> (implicit_r0_pressure): New.
>> (sh_reorder): Use implicit_r0_pressure.
>> (sh_reorder2): Likewise.
> I'm a bit concerned with this approach. Consider, for example, a (mem
> (reg)), in which reload finds this reg to be equivalent to a (plus
> (reg) (reg)), or a (plus (reg) (const_int BIG)). Both might end up
> needing r0, and I don't quite see how you could prevent reload from
> trying such a substitution.
> That said, your patch definitely fixes a real problem. I'm just
> concerned that it doesn't fix it completely. The approach feels a bit
> like overkill, but I could live with it. Jörn, any concerns? Anyone,
> any further thoughts?
Jörn has pointed out in #4 of PR description thread that the real
problem is in lcm.c:optimize_mode_switching.