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: PR target/16482: first scheduling pass on SH4


Alexandre Oliva <aoliva@redhat.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.

Agreed.

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

Regards,
	kaz


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