Article View: gnu.g++.bug
Article #400GNU C++ on Sparc
From: Michael Tiemann
Date: Fri, 08 Sep 1989 23:58
Date: Fri, 08 Sep 1989 23:58
41 lines
1791 bytes
1791 bytes
You need to put this patch into combine.c in order to compile Fix.cc:
Return-Path: <rms@ai.mit.edu>
Date: Fri, 8 Sep 89 19:15:06 EDT
From: rms@ai.mit.edu
To: tiemann@lurch.stanford.edu
In-Reply-To: Michael Tiemann's message of Fri, 8 Sep 89 10:47:21 PDT <8909081747.AA02901@teacake.sun.com>
Subject: combine.c bug
Do you need more information than this?
It was enough, this time. Since the whole point is just an optimization,
it isn't crucial what is done when i3 is not a SET. So try this
(and delete the old declaration of i3dest):
&& XEXP (XVECEXP (PATTERN (i3), 0, i), 0) == i1dest)
return 0;
}
/* If it is better that two different modes keep two different pseudos,
avoid combining them. */
+ if (GET_CODE (PATTERN (i3)) == SET)
+ {
! rtx i3dest = SET_DEST (PATTERN (i3));
! while (GET_CODE (i3dest) == SUBREG
! || GET_CODE (i3dest) == STRICT_LOW_PART
! || GET_CODE (i3dest) == SIGN_EXTRACT
! || GET_CODE (i3dest) == ZERO_EXTRACT)
! i3dest = SUBREG_REG (i3dest);
!
! if (SET_SRC (PATTERN (i3)) == i2dest
! && GET_CODE (i3dest) == REG
! && ! MODES_TIEABLE_P (GET_MODE (i2dest), GET_MODE (i3dest)))
! return 0;
! }
/* If I2 contains anything volatile, reject, unless nothing
volatile comes between it and I3. */
if (volatile_refs_p (PATTERN (i2)))
Michael
Technical Details
Message-ID:
<8909082358.AA05146@teacake.sun.com>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!tut.cis.ohio-state.edu!SUN.COM!tiemannShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!tut.cis.ohio-state.edu!SUN.COM!tiemann From: tiemann@SUN.COM (Michael Tiemann) Newsgroups: gnu.g++.bug Subject: GNU C++ on Sparc Message-ID: <8909082358.AA05146@teacake.sun.com> Date: 8 Sep 89 23:58:50 GMT Sender: daemon@tut.cis.ohio-state.edu Reply-To: tiemann@lurch.stanford.edu Distribution: gnu Organization: GNUs Not Usenet Lines: 41