Article View: gnu.gcc.bug
Article #2819Re: GCC on Sequent Balance machines -- reload1.c out of tree space
From: Jim Reid
Date: Wed, 10 Jan 1990 16:59
Date: Wed, 10 Jan 1990 16:59
64 lines
2846 bytes
2846 bytes
In article <8YKD^@rpi.edu> tale@cs.rpi.edu (David C Lawrence) writes:
>I am having a bit of a problem getting a working GCC 1.36 on our
>Sequent Balance 8000 and 21000 machines. The following seems to be
>the only thing (currently) standing in the way of getting it going:
>$ make
> cc -c -g -I. -I. -I./config reload1.c
>"reload1.c", line 2249: compiler error: out of tree space; simplify expression
>*** Error code 1
I fixed this some time ago and passed the patch to RMS for inclusion in
a subsequent version of GCC. Here's the patch. Enjoy.
Jim
*** reload1.c Wed Nov 8 10:19:44 1989
--- reload1.c.seq Wed Nov 8 11:31:24 1989
***************
*** 1866,1871 ****
--- 1866,1875 ----
/* Non-zero means we must reuse spill regs for multiple reloads in this insn
or we will not have enough spill regs. */
int must_reuse = 0;
+ #if defined(sequent) && defined(ns32000) && !defined(__GNUC__)
+ /* kludge for DYNIX C compiler */
+ int h1, h2, h3;
+ #endif
bzero (reload_inherited, MAX_RELOADS);
bzero (reload_override_in, MAX_RELOADS * sizeof (rtx));
***************
*** 2240,2245 ****
--- 2244,2265 ----
reload_spill_index[r] = i;
/* Detect when the reload reg can't hold the reload mode. */
+ #if defined(sequent) && defined(ns32000) && !defined(__GNUC__)
+ /*
+ * The Sequent Balance C compiler cannot grok the
+ * original expression, so simplify it.
+ * JR 8/11/89 jim@cs.strath.ac.uk
+ */
+ h1 = HARD_REGNO_MODE_OK (REGNO (reload_reg_rtx[r]),
+ reload_mode);
+ h2 = HARD_REGNO_MODE_OK (REGNO (reload_reg_rtx[r]),
+ GET_MODE (reload_in[r]));
+ h3 = HARD_REGNO_MODE_OK (REGNO (reload_reg_rtx[r]),
+ GET_MODE (reload_out[r]));
+ if (!h1 || (reload_in[r] != 0 && !h2)
+ || (reload_out[r] != 0 && !h3))
+
+ #else
if (! HARD_REGNO_MODE_OK (REGNO (reload_reg_rtx[r]), reload_mode)
|| (reload_in[r] != 0
&& ! HARD_REGNO_MODE_OK (REGNO (reload_reg_rtx[r]),
***************
*** 2247,2252 ****
--- 2267,2273 ----
|| (reload_out[r] != 0
&& ! HARD_REGNO_MODE_OK (REGNO (reload_reg_rtx[r]),
GET_MODE (reload_out[r]))))
+ #endif
{
if (asm_noperands (PATTERN (insn)) < 0)
/* It's the compiler's fault. */
Technical Details
Message-ID:
<1464@baird.cs.strath.ac.uk>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!uunet!mcsun!ukc!strath-cs!jimReferences:
<8YKD^@rpi.edu>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!jarvis.csri.toronto.edu!cs.utexas.edu!uunet!mcsun!ukc!strath-cs!jim From: jim@cs.strath.ac.uk (Jim Reid) Newsgroups: gnu.gcc.bug Subject: Re: GCC on Sequent Balance machines -- reload1.c out of tree space Message-ID: <1464@baird.cs.strath.ac.uk> Date: 10 Jan 90 16:59:04 GMT References: <8YKD^@rpi.edu> Sender: news@cs.strath.ac.uk Reply-To: jim@cs.strath.ac.uk Organization: Comp. Sci. Dept., Strathclyde Univ., Scotland. Lines: 64