This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: GCC trunk SPEC2000 performance


> >>>>> Richard Henderson writes:
> 
> Richard> Peak cannot be considered "peak" with -funroll-all-loops
> Richard> as opposed to -funroll-loops.  That forces the compiler 
> Richard> to unroll a loop against its better judgement.
> 
> 	That assumes that the compiler's judgment is good, which it has
> not been in the past.  I have seen better performance with
> -funroll-all-loops than with -funroll-loops.  That option is not what is
> causing base and peak to be inverted.

>From the Andrea's tester:
-O2 -march=athlon -funroll-all-loops:394
-O3 -march=athlon -funroll-all-loops:392
-O2 -march=athlon -funroll-loops:394
-O3 -march=athlon -funroll-loops:394

The numbers are times, not ratings. So at least for 3.0.1
unroll-all-loops appear to do very slightly better job, but just very
slightly.

Additionally the numbers concerning frame pointer/leaf frame pointer
are:

O2 -march=athlon:401
-O3 -march=athlon:397
-O2 -march=athlon -fomit-frame-pointer:391
-O3 -march=athlon -fomit-frame-pointer:391
-O2 -march=athlon -momit-leaf-frame-pointer:397
-O3 -march=athlon -momit-leaf-frame-pointer:394

It looks like -fomit-frame-pointer is quite a bit more effective.  I
believe we can now rely on GDB to do DWARF2 unwinding, as the code
already works for x86-64, so that can be very interesting alternative to
current settings.

Honza
> 
> David


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]