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