This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: push_reload question
- To: "David S. Miller" <davem at dm dot cobaltmicro dot com>
- Subject: Re: push_reload question
- From: Jeffrey A Law <law at cygnus dot com>
- Date: Thu, 22 Oct 1998 19:17:45 -0600
- cc: crux at pool dot informatik dot rwth-aachen dot de, egcs at cygnus dot com
- Reply-To: law at cygnus dot com
In message <199810210102.SAA22204@dm.cobaltmicro.com>you write:
> The comment above this conditional states:
>
> (However, if OUT is nonzero, we need to reload the reg *and*
> the subreg, so do nothing here, and let following statement handle it.)
>
> Looking at the "out != 0" cases two conditionals down, I would say the
> "SUBREG_WORD(in)==0" is a bug and should be removed.
>
> This area of the compiler is an utter rats nest full of hidden
> treasure, thanks for working on cleaning it up. :-)
My only concern is that we're changing the behavior of the existing code, but
based on the comments earlier in the code, I think the check for SUBREG_WORD
is bogus.
The other thought I had was that maybe someone typo'd and the check should
have been SUBREG_WORD (out)?
It might be worth grunging through the RCS archives at the FSF to find out
where this change came from. It might tell us something interesting. Then
again, probably not.
An interesting test might be to leave the check in, but put a
if (out != 0) printf("yabbadabbado\n");
In the if arm code, just to see where it triggers. Save the resulting
assembly for the trigger, then pull the SUBREG check out and diff recompile
and examine the results.
Or just remove it and hope that the change in behavior is correct :-)
jeff