This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: tree-ssa branch broken


Diego Novillo wrote:
On Sat, 29 Jun 2002, Graham Stott wrote:


I get the same segv compiling crtstuff.c with the stage2 compiler just
built by stage1 and that is with and without rtl checking enabled.

It's possible that I'm not getting a segv because of the older
binutils I'm running.  I still have not had time to look into it
any more than this.
Interestingly I can get both the segv and rtl checking failure :-)

It depends very much on your stack layout which part of the stack
gets trampled. The segv occurs when the recog () return address gets
trampled and the rtl checking failure occurs when the INSN parameter
to recog_memozied_1 () gets trampled.

I found this out when adding some debuging code to recog_memozied_1 ()
resulted in the rtl checking failure rather than segv.

In both cases the trample occurs during the same call to recog () from
recog_memoized_1 ().

I think it's a problem with SIMPLE but I'm having difficulty pinpointing
exactly what although I do suspect SIMPLE is doing something wrong when
processing the "operands[N] = x" assigments where operands is declared as

		rtx * const operands = &recog_data.operand[0];
	
The evidence comes from two experiments which both resulted in a working
insn-recog.o

A) replacing all occurences of operands[N] with recog_data.operand[N]

B) compiling insn-recog.c with -fdisable-simple -fno-ssa-tree


Diego.

Cheers
Graham




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]