This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: [cft] subreg validation patch
- From: Richard Henderson <rth at redhat dot com>
- To: Ulrich Weigand <uweigand at de dot ibm dot com>
- Cc: gcc at gcc dot gnu dot org, ebotcazou at libertysurf dot fr, jh at suse dot cz
- Date: Mon, 15 Nov 2004 12:03:19 -0800
- Subject: Re: [cft] subreg validation patch
- References: <200411141503.iAEF3dsY032310@53v30g15.boeblingen.de.ibm.com>
On Sun, Nov 14, 2004 at 04:03:39PM +0100, Ulrich Weigand wrote:
> Richard Henderson wrote:
>
> >Could everyone please try the following on their favorite platform
> >and report back with new failures?
>
> I've tried your patch on s390-ibm-linux and s390x-ibm-linux. On both
> platforms, bootstrap fails when building stage2, because of a bug in
> regmove_optimize. The code there tries to convert a paradoxical
> subreg move into a move with the opposite subreg on the other side,
> but completely messes up the subreg offset. The following patch
> appears to fix that problem:
Indeed. This should be ok to check in by itself.
> ... calls gen_rtx_SUBREG to form a DFmode subreg of one of the subwords of
> a TImode register.
>
> I'm not sure how to fix that, not least because I still don't understand
> why this subreg is now supposed to be invalid in the first place ...
According to the docs, it always was invalid. I guess I'll put an
exception in there for this, as with the SI->DF exception that I
have already added.
> This check is not quite the same as the check done in simplify_subreg.
> In particular, you neither check for REG_CANNOT_CHANGE_MODE_P, nor is
> there the special checks for frame-related registers. While I'm not
> quite sure I fully understand those checks, shouldn't the rules be
> the same here as in simplify_subreg?
Yes.
r~