This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: gcc in IA64
- From: Vladimir Makarov <vmakarov at redhat dot com>
- To: Daniel Carrera <dcarrera at math dot umd dot edu>
- Cc: gcc at gcc dot gnu dot org
- Date: Thu, 27 Feb 2003 11:23:16 -0500
- Subject: Re: gcc in IA64
- References: <20030227070807.GC17232@math.umd.edu>
Daniel Carrera wrote:
>
> What's the status of gcc in IA-64?
> I understand that the IA64 architecture is such that compiler optimization
> becomes far more important than in the traditional x86. I also understand
> that traditional compilers have not performed this kind of optimization
> before, and that without it the software produced comes out very slow.
>
> In this light, I was hoping I could get some questions answered:
>
> 1) How efficient if gcc currently in IA64?
> 2) How does it compare with other compilers?
> 3) Will it take a long time before gcc can make proper use of the IA64
> architecture?
> 4) In the near future, should I be looking at x86-64 instead?
>
> Thanks for the help, I appreciate it.
>
This is a comparison of different versions of compilers on SPECINT2000
for a HP Itanium2 (900 Mhz) workstation made in Dec. -O2 was used for
all
compilers because the most users use it. If you look at www.spec.org
you will see a much better results for HP compiler (but they use profile
information optimizations which with my point of view is a cheating for
real users but not for SPEC).
Briefly the intel compiler was faster and generated a better code. But
the code generated by gcc is more compact.
What is happened after December. The code generated by gcc has been
improved on 3.5% on SPECINT2000 and the compiler has been sped up
on 56%. So now gcc is practically as fast as the intel compiler
and generates code less 20% worse than the intel compiler does.
On my opinion the following high priority optimizations should be added
to improve code generated by gcc for Itanium:
1. more aggressive interblock insn scheduling with
usage of ia64 data and control flow speculation insns
2. code parallelization (usage of SIMD insns)
3. software pipelining
4. better aliasing analysis
You could find more http://gcc.gnu.org/projects/ia64.html
SPECINT2000 results for gcc-2.96-112, gcc-3.2 branch as of Nov 14,
Intel v7.0 compiler. -O2 was used for all
compilers.
gcc-2.96-112 gcc-3.2 branch ecc v7.0
----------------------------------------------------
164.gzip 334 352 418
175.vpr 391 387 416
176.gcc 434 445 615
181.mcf 233 230 229
186.crafty 443 451 575
197.parser 333 348 350
252.eon 243 258 447
253.perlbmk 404 433 480
254.gap 333 346 429
255.vortex 461 465 525
256.bzip2 339 334 440
300.twolf 402 439 484
Est. SPECint2000 355 366 439
% 100% 103% 124%
Compilation (user) time for SPECINT2000 tests (except for eon):
gcc-2.96-112 gcc-3.2 branch ecc v7.0
------------------------------------------------
Sec. 420 929 575
% 100% 221% 137%
All gcc compilers have been built for release (with
--disable-checking).
Compilation (user) time for SPECINT2000 eon (a C++ test):
gcc-2.96-112 gcc-3.2 branch ecc v7.0
-------------------------------------------------
Sec. 109 354 301
% 100% 325% 276%
Size (text+data+bss):
gcc-2.96-112 gcc-3.2 branch ecc v7.0
--------------------------------------------------
gzip 450959 100% 453283 101% 634738 141%
vpr 309272 100% 292559 95% 582829 188%
gcc 3236031 100% 3145514 97% 3774287 117%
mcf 38052 100% 36951 97% 247807 651%
crafty 1506711 100% 1488470 99% 1714749 114%
parser 452014 100% 441744 98% 665591 147%
eon 1101775 100% 1080233 98% 3197061 290%
perlbmk1291216 100% 1256518 97% 1702472 132%
gap 2038913 100% 2025540 99% 2602401 128%
vortex 1094974 100% 1076421 98% 1453213 133%
bzip2 150549 100% 144907 96% 359050 238%
twolf 533872 100% 509721 95% 833294 156%
Vlad