This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: giv combination patch
- To: Richard Henderson <rth at cygnus dot com>
- Subject: Re: giv combination patch
- From: Toon Moene <toon at moene dot indiv dot nluug dot nl>
- Date: Sat, 13 Dec 97 19:52:43 +0100
- Cc: egcs at cygnus dot com
- Organization: Moene Computational Physics, Maartensdijk, The Netherlands
- References: <9712071422.AA09973@moene.indiv.nluug.nl><19971212091938.18819@dot.cygnus.com>
- Reply-To: egcs at cygnus dot com
I wrote:
> > 1. Combining related General Induction Variables.
RTH:
> The following code is a first step along this path. It
> works correctly for givs related by a constant as below,
> or a simple constant as with higher order ranks of
> staticly dimensioned arrays.
Unfortunately, trying this patch against egcs-971207, it doesn't
work, over here:
stage1/xgcc -Bstage1/ -DIN_GCC -O2 -g -DHAVE_CONFIG_H -o
genrecog \
genrecog.o rtl.o ` case "obstack.o" in ?*) echo obstack.o ;; esac
` ` case "" in ?*) echo ;; esac ` ` case "" in ?*) echo ;; esac `
./genrecog ./config/m68k/m68k.md > tmp-recog.c
/bin/sh: 25584 Memory fault
make[1]: *** [stamp-recog] Error 139
make[1]: Leaving directory `/Users/toon/Unix/compilers/egcs-971207/gcc'
make: *** [bootstrap] Error 2
I've tried whatever-you-can-think-of to get some information out of
this, but gdb reports:
Program generated(1): Memory access exception on address 0xfed3d594
(invalid address).
Reading in symbols for ./genrecog.c...done.
add_to_sequence (pattern=0x20222, last=0x3fffad0,
position=0x1098<Address 0x1098 out of bounds>) at ./genrecog.c:391
391 if (preds[i].codes[1] == 0 && new->code ==
UNKNOWN)
(gdb) p i
$1 = 9
(gdb) p new
$2 = (struct decision *) 0x2526c
(gdb) p new->code
$3 = UNKNOWN
(gdb) p preds[i].codes[1]
$5 = UNKNOWN
(gdb) list
386 int j;
387 int allows_const_int = 0;
388
389 new->pred = i;
390
391 if (preds[i].codes[1] == 0 && new->code ==
UNKNOWN)
392 {
393 new->code = preds[i].codes[0];
394 if (! strcmp ("const_int_operand",
new->tests))
395 new->tests = 0, new->pred = -1;
... etc ...
and I can't get any subexpression of line 391 generating a
segmentation fault, i.e. nothing revealing.
HTH,
Toon.