This is the mail archive of the gcc@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: GCC trunk SPEC2000 performance


Andreas Jaeger wrote:
Jan Hubicka <jh@suse.cz> writes:


Yes, that seems to be the same failure:
/usr/src/SpecTests/d-permanent/i686/install-200206200731/bin/g77 -c -o apsi.o -O3 -fomit-frame-pointer -march=athlon -funroll-all-loops -fstrict-aliasing -malign-double -fprefetch-loop-arrays  apsi.f
apsi.f: In subroutine `uvset':
apsi.f:4327: internal compiler error: RTL flag check: REG_POINTER used with unexpected rtx code `mem' in copy_rtx_and_substitute, at integrate.c:2065
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://www.gnu.org/software/gcc/bugs.html> for instructions.
specmake: *** [apsi.o] Error 1


Hmm, obvious fix appears to be the patch attached.  I am not at all sure
whether it is the sane fix, as I don't understand the difference between
first and second operand of addressof (need for the second operand).
I also can't test whether it works, as I don't have SPEC sources here.

I've done a complete bootstrap and regtest on i686-linux-gnu with no
regressions and used the resulting compiler to compile apsi.f which
was successfull.

So, is this the right solution or does it just work by chance?
That all depends if a MEM rtx should ever appear in x_regno_reg_rtx[]

I can't tell for sure because there's no comment describing this field
in integrate.h and a quick grep is not conclusive most of the uses I
examined implied it was always a REG rtx but in a few cases there is
code such as

		if (GET_CODE (regno_reg_rtx[regno]) != REG)

which tends to imply it might sometimes not be a REG rtx.

Andreas


Graham


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