This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch] h8300.c: Improve shifts.
- To: Richard Henderson <rth at cygnus dot com>
- Subject: Re: [patch] h8300.c: Improve shifts.
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Fri, 11 Aug 2000 15:46:21 -0600
- cc: Kazu Hirata <kazu at hxi dot com>, gcc-patches at gcc dot gnu dot org
- Reply-To: law at cygnus dot com
In message <20000811141337.A32308@cygnus.com>you write:
> On Fri, Aug 11, 2000 at 02:58:51PM -0600, Jeffrey A Law wrote:
> > Kazu is generating a loop for the n << m part -- the oods that we're
> > going to be able to fold things are pretty slim when we generate a loop
> > for such stuff.
>
> You probably don't want to have the loop in rtl until at least sched1.
> Letting cse/combine do constant substitution is more valuable I would
> think.
FWIW, we don't schedule on this port anyway :-) Really the only benefit
of exposing the loop is register allocation issues, but we might be able
to get the same benefit by doing something like this in the expander:
new_reg = gen_reg_rtx (QImode)
emit_move_insn (new_reg, count reg)
Then use new reg for the loop counter.
In the pattern we change the scratch register to be a clobbered match_dup
of the count register.
Or we can try to split it from a single insn into a loop between combine
and register allocation. Though that's going to create new basic blocks...
jeff