On Wednesday, September 4, 2002, at 10:07 AM, Jonas Maebe wrote:

> The program at the end of this mail is 10% slower when compiled with 
> GCC 3.x (both 3.0.4 and 3.1.1 tested, using -O6, on a PPC604e/180MHz) 
> than when compiled with 2.95. The reasons are
> a) several superfluous "fmr" instructions are generated by gcc3 (which 
> aren't generated by gcc 2.95):
> b) the static prediction bit for the loop-branches are wrong (they are 
> set to be predicted "not taken). Changing this doesn't really improve 
> performance on my test machine, but it should still be fixed of course 
> (note that I've only verified this with gcc 3.0.4, I don't have access 
> to 3.1.1 currently):
> From the dialect, you can see these tests were performed under Linux. 
> I don't have access a Mac OS X machine with gcc 3.x (only with 2.95.2, 
> I'm still under 10.1.5 and I don't want to install the beta tools 
> since I'll soon upgrade to 10.2), so it's possible neither of these 
> problems shows up in the Apple version of gcc3.

In Apple's version the branches are predicted taken but the fmr (just 
the one you
indicated) is still there.  The difference is more like 5% but gcc2 is 
faster, and
if you remove the fmr gcc3 becomes faster.  I'll look at it.

Reply via email to