This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: push_reload question




  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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]