This is the mail archive of the
mailing list for the GCC project.
Re: PR53914, rs6000 constraints and reload queries
- From: "Ulrich Weigand" <uweigand at de dot ibm dot com>
- To: hainque at adacore dot com
- Cc: gcc at gcc dot gnu dot org, amodra at gmail dot com, dje dot gcc at gmail dot com, bergner at vnet dot ibm dot com, mrmeissn at us dot ibm dot com
- Date: Wed, 1 Aug 2012 16:04:51 +0200 (CEST)
- Subject: Re: PR53914, rs6000 constraints and reload queries
Olivier Hainque wrote:
> I had made a proposal to help the rs6000_mode_dependent_address
> issue, http://gcc.gnu.org/ml/gcc-patches/2012-04/msg01668.html.
> Seems to me that the general idea is still valid:
> << a number of places in the compiler use the
> mode_dependent_address_p predicate to actually check for weaker necessary
> Opinion on the proposal ?
I've been wondering about mode_dependent_address_p myself. It currently
appears to cover two quite separate questions:
- If I have a valid address, will it remain valid if I change its mode to
- If I have a valid address, and change it mode (resulting in another
valid address), will the two address expressions have different
"meanings" or side effects? (E.g. an auto-increment address where
the increment depends on the mode size.)
It seems to me that the first of those questions is rather redundant.
Instead of speculating whether the address would remain valid if the
mode were changed, code should IMO rather simply just change the
address and then check its validity in the usual way (legitimate
address etc.). Only the second question really provides any actual
*new* information ...
See also the reload patch I recently posted to get rid of some uses
of offsettable_memref_p in favor of simply doing the change and testing
its validity afterwards:
Dr. Ulrich Weigand
GNU Toolchain for Linux on System z and Cell BE