GCC trunk SPEC2000 performance

Graham Stott graham.stott@btinternet.com
Thu Jun 20 13:27:00 GMT 2002


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



More information about the Gcc mailing list