Article View: gnu.gcc.bug
Article #1786(none)
From: David W. Forslund
Date: Wed, 12 Oct 1988 15:53
Date: Wed, 12 Oct 1988 15:53
83 lines
3693 bytes
3693 bytes
After adding the patch for push_reload from RMS, gcc-1.29 still will
not compile on a Sun4 running SunOS4.0:
It dies in stage1 trying to compile toplev.c. Here is the output of dbx:
Script started on Wed Oct 12 09:45:45 1988
demos% make CC=stage1/gcc CFLAGS="-g -v -O -Bstage1/"
stage1/gcc -g -v -O -Bstage1/ -sun4 -c toplev.c
gcc version 1.29
stage1/cpp -v -undef -D__GNU__ -D__GNUC__ -Dsparc -Dsun -Dunix -D__OPTIMIZE__ toplev.c /tmp/cca08294.cpp
GNU CPP version 1.29
stage1/cc1 /tmp/cca08294.cpp -quiet -dumpbase toplev.c -g -O -version -o /tmp/cca08294.s
GNU C version 1.29 (sparc) compiled by CC.
stage1/gcc: Program cc1 got fatal signal 6.
*** Error code 1
make: Fatal error: Command failed for target `toplev.o'
demos% dbx stage1/cc1
Reading symbolic information...
Read 41397 symbols
(dbx) where
kill() at 0xf7728c38
push_reload(in = 0xcd028, out = (nil), inloc = 0xcd074, outloc = (nil), class = GENERAL_REGS, inmode = SImode, outmode = VOIDmode, strict_low = 0, optional = 0), line 235 in "reload.c"
find_reloads_address(mode = SImode, memrefloc = 0xcd214, ad = 0xcd028, loc = 0xcd074), line 1970 in "reload.c"
find_reloads(insn = 0xcd220, replace = 0, ind_ok = 0, live_known = 1, reload_reg_p = 0xc65d8), line 1021 in "reload.c"
reload(first = 0xccac8, global = 1, dumpfile = (nil)), line 434 in "reload1.c"
global_alloc(file = (nil)), line 303 in "global-alloc.c"
rest_of_compilation(decl = 0x10cb50), line 1288 in "toplev.c"
finish_function(), line 3291 in "c-decl.c"
yyparse(), line 224 in "c-parse.y"
compile_file(name = 0xf7fffc40 "/tmp/cca08294.cpp"), line 863 in "toplev.c"
main(argc = 10, argv = 0xf7fffb94, envp = 0xf7fffbc0), line 1579 in "toplev.c"
(dbx) quit
demos% ^D
script done on Wed Oct 12 09:46:59 1988
Here is the patch which was used on reload.c. Are there others?
*** reload.c~ Thu Oct 6 20:36:43 1988
--- reload.c Tue Oct 11 15:05:22 1988
***************
*** 308,313 ****
--- 308,338 ----
&& (in == 0 || reload_in[i] == 0 || MATCHES (reload_in[i], in)))))
break;
+ /* Reloading a plain reg for input can match a reload to postincrement
+ that reg, since the postincrement's value is the right value.
+ Likewise, it can match a preincrement reload, since we regard
+ the preincrementation as happening before any ref in this insn
+ to that register. */
+ if (i == n_reloads)
+ for (i = 0; i < n_reloads; i++)
+ if (reload_reg_class[i] == class
+ && reload_strict_low[i] == strict_low
+ && out == 0 && reload_out[i] == 0
+ && ((GET_CODE (in) == REG
+ && (GET_CODE (reload_in[i]) == POST_INC
+ || GET_CODE (reload_in[i]) == POST_DEC
+ || GET_CODE (reload_in[i]) == PRE_INC
+ || GET_CODE (reload_in[i]) == PRE_DEC)
+ && MATCHES (XEXP (reload_in[i], 0), in))
+ ||
+ (GET_CODE (reload_in[i]) == REG
+ && (GET_CODE (in) == POST_INC
+ || GET_CODE (in) == POST_DEC
+ || GET_CODE (in) == PRE_INC
+ || GET_CODE (in) == PRE_DEC)
+ && MATCHES (XEXP (in, 0), reload_in[i]))))
+ break;
+
if (i == n_reloads)
{
/* We found no existing reload suitable for re-use.
David Forslund
MS E531
Los Alamos National Laboratory
Los Alamos, NM 87545
(505) 665-1907
(dwf@lanl.gov)
Technical Details
Message-ID:
<8810121553.AA01965@hope.lanl.gov>Path:
arc1-ca.pugleaf.net!utzoo!telly!ddsw1!mcdchg!rutgers!tut.cis.ohio-state.edu!LANL.GOV!dwf%hopeShow Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!telly!ddsw1!mcdchg!rutgers!tut.cis.ohio-state.edu!LANL.GOV!dwf%hope From: dwf%hope@LANL.GOV (David W. Forslund) Newsgroups: gnu.gcc.bug Subject: (none) Message-ID: <8810121553.AA01965@hope.lanl.gov> Date: 12 Oct 88 15:53:01 GMT Sender: daemon@tut.cis.ohio-state.edu Distribution: gnu Organization: GNUs Not Usenet Lines: 83