This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH] S/390: shifts and setmems with implicit ANDs
- From: Ulrich Weigand <uweigand at de dot ibm dot com>
- To: rth at redhat dot com (Richard Henderson)
- Cc: krebbel1 at de dot ibm dot com (Andreas Krebbel), gcc-patches at gcc dot gnu dot org
- Date: Sat, 20 Aug 2005 00:39:29 +0200 (CEST)
- Subject: Re: [PATCH] S/390: shifts and setmems with implicit ANDs
Richard Henderson wrote:
> On Wed, Aug 17, 2005 at 09:53:28AM +0200, Andreas Krebbel wrote:
> > I've bootstrapped with this patch and have run the testsuite without new
> > failures. Do you remember a particular testcase which triggered the reload
> > problem?
>
> Sure. All you need is for the actual argument buried underneath
> the operator to be reloaded. It doesn't appear in the insn_data
> that reload uses to do its job.
Actually, basic reloads work fine, because the operand is using an
EXTRA_ADDRESS_CONSTRAINT, and find_reloads_address knows how to
look through an outermost AND.
Unfortunately, there are still failure cases in more complex scenarios
involving register elimination. In fact, we've managed to generate
ICEs even without the AND-patch, just due to SUBREGs.
However, those scenarios can only be triggered by doing weird things
like using the address of a stack variable as shift count, so I'd
prefer to solve the issue by just not accepting any eliminable reg
as shift count operand. (I still need to verify that the reg_equiv
stuff doesn't make problems ...)
Bye,
Ulrich
--
Dr. Ulrich Weigand
Linux on zSeries Development
Ulrich.Weigand@de.ibm.com