Thread View: gnu.g++.bug
1 messages
1 total messages
Started by Michael Tiemann
Fri, 08 Sep 1989 23:58
GNU C++ on Sparc
Author: 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
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads