This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Haney's real matrix test regression
- To: Richard Kenner <kenner at vlsi1 dot ultra dot nyu dot edu>
- Subject: Re: Haney's real matrix test regression
- From: Paolo Carlini <pcarlini at unitus dot it>
- Date: Sat, 27 Oct 2001 17:34:55 +0200
- CC: gcc at gcc dot gnu dot org
- References: <10110271524.AA23780@vlsi1.ultra.nyu.edu>
Richard Kenner wrote:
> For sure the "O-O C++" version performed better than the "hard coded C"
> version of the test case until a week ago, and this is the case indeed
> the case for gcc3.0.2.
>
> Well, I'd say try again, since what we're seeing is C++-specific.
Sorry, but I'm even more confused.
In that C++ testsuite (it is a C++ testsuite, indeed), there are two versions
of a matrix multiplication loop: one "C++-style", which involves member
functions for indexing the matrices, the other one "C-style" wich uses simple
array indexing.
gcc3.0.2 (and 3.1 'til a few days ago, I maintain) is able to optimize the
"C++-style" case in such a way that it is even faster than the "C-style" case,
whereas the current 3.1 snapshots are not able anymore to do so.
Privately, I sent you the "C++-style" version of the test, which indeed shows
that the innermost loop is compiled radically better by 3.0.2 than current
3.1, you can confirm that??
> You mean that your recent checkins, while improving the optimization
> of C code have a negative impact for C++ code until some radical
> modifications are implemented to improve C++ alias analysis?
>
> My changes were not to improve optimization, but to fix bugs where the
> wrong alias set was used. I don't have any idea if a "radical modication"
> of G++ is needed to allow using normal alias sets or not since I have
> no idea why they have been disabled. Hopefully, that's just a very
> overly-conservative test that can be refined. For example, as written,
> it applies to all ARRAY_TYPEs, but the comment suggest it shouldn't.
I see, thanks for the explanation.
Cheers,
Paolo.