This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: java aliasing rules
- From: Jeff Sturm <jsturm at one-point dot com>
- To: Bryce McKinlay <bryce at waitaki dot otago dot ac dot nz>
- Cc: tromey at redhat dot com, Dan Nicolaescu <dann at godzilla dot ics dot uci dot edu>, java at gcc dot gnu dot org, gcc at gcc dot gnu dot org
- Date: Thu, 4 Apr 2002 13:43:31 -0500 (EST)
- Subject: Re: java aliasing rules
On Sun, 31 Mar 2002, Bryce McKinlay wrote:
> >>lhz r9, [ps1.f1]
> >>addi r9,r9,1
> >>sth r9, [ps1.f1]
> >>
> >
> >Wouldn't accessing r9 immediately after the load cause a pipeline stall?
> >Assuming an in-order processor? That would be a significant performance
> >hit.
> >
>
> Right, its not optimal scheduling, but there's no way to avoid that and
> still have the correct behaviour for NullPointers. And as you suggest, a
> modern processor may be speculativly executing the following loads, so
> it probibly doesn't matter too much.
Am I correct in thinking this is only an issue for -fnon-call-exceptions?
It might be useful to turn this "correctness" off with a compiler option,
as we do with -fno-bounds-check. I habitually check for null in my code,
and don't do anything useful with a NullPointerException besides aborting.
I suspect that's true of a great deal of Java code.
(As an aside, it's hard to classify a "modern" processor... SPARC
and IA-64 are in-order, and likely to remain that way.)
Jeff