This is the mail archive of the gcc@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


On Oct 15, 2004, Kaz Kojima <kkojima@rr.iij4u.or.jp> 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?

-- 
Alexandre Oliva             http://www.ic.unicamp.br/~oliva/
Red Hat Compiler Engineer   aoliva@{redhat.com, gcc.gnu.org}
Free Software Evangelist  oliva@{lsd.ic.unicamp.br, gnu.org}


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