Re: Sun Studio 11 vs. gcc 4.1.1



On Sun, 13 May 2007 18:48:08 -0700 Frank Cusack <fcusack@xxxxxxxxxxx> wrote:
On Sun, 13 May 2007 22:40:49 +0000 (UTC) "Daniel Rock" <v200720@xxxxxxxxxxx> wrote:
I did some further OpenSSL benchmarks to compare the optimizer of Studio 11
vs. gcc 4.1.1.
...
The benchmark:
OpenSSL 0.9.8e with builtin test "openssl speed". Hand optimized
assembler routines were turned off with "no-asm". libcrypto and
libssl were generated and linked as static libraries.
...
Conclusion: On SPARC Studio 11 generates the best code almost all of the
time compared to gcc.

On x86 the results are mixed: In 32bit Studio 11 usually generates better
code, but there are also benchmarks which favour gcc. Better stay away
from Studio 11 64bit code. It maybe even slower than the 32bit code and
is way behind gcc's 64bit code generation.

I would just say, be careful about generalizing this from OpenSSL to code
in general.

Also, this does not mean that OpenSSL should be compiled with Studio 11.
(You disabled the asm routines.)

Oh, make sure that you are using -mno-app-regs with gcc on sparc.
When compiling libraries you need to do that with gcc-4.x. (It
is the default setting for gcc-3.x.) I don't know what Studio does.

-mno-app-regs
-mapp-regs

Specify -mapp-regs to generate output using the global registers 2
through 4, which the SPARC SVR4 ABI reserves for
applications. This is the default.

To be fully SVR4 ABI compliant at the cost of some performance
loss, specify -mno-app-regs. You should compile libraries and
system software with this option.

-frank
.