On Sunday 12 June 2005 11:21, Uros Bizjak wrote: > Hello! > > There is an interesting comparison of SPEC scores between gcc and icc: > http://people.redhat.com/dnovillo/spec2000.i686/gcc/individual-run-ratio.ht >ml . A quick look at the graphs shows a big differences in achieved scores > between gcc and icc, mostly in SpecFP tests. I was trying to find some > information on this matter, but none can be found in the archives on gcc's > site. > > An interesting examples are: > -177.mesa (this is a c test), where icc is almost 40% faster
It would be interesting to look into this one. > -179.art, where llvm is more than 1.5x faster than both gcc and icc Perhaps LLVM has the art hack enabled by default. IIUC GCC can do this on the struct-reorg-branch. > -178.galgel, where icc is again 40% faster > -187.facere, where icc is 100% faster than gcc > -189.lucas, where icc is 60% faster Well, our fortran front end has to make some pessimistic assumptions about a great number of things (dependencies, in particular) that ifc handles better. Comparing gfortran and ifc is just Not Interesting at this point IMVHO. > I know that these graphs don't show the results of most aggresive > optimization options for gcc, but that is also the case with icc (only > -O2). However, it looks that gcc and icc are not even in the same class > regarding FP performance. Perhaps there is some critical optimizations, > that are not present in gcc? No, icc/ifc just do many things by default that GCC does not. > I think I'm not the only person, that finds these results rather > "dissapointing". As Scott is currently writing a paper on gcc's FP > performance, perhaps someone has an explanation, why gcc's results are > so low on Pentium4 for these tests? Many possibilities: - icc/ifc use special argument passing tricks that gcc does not (e.g. uses SSE more, etc.)? - icc has fast math by default? - they unroll by default? - they actually optimized their compiler for this dreadful Pentium 4 NetBurst uops buffer and all that other crap in this microarch that behave so very unpredictably (especially for gcc)? - icc/ifc just are "optimized for SPEC" to make their compiler look really good compared to others on this industry-standard benchmark, while for Joe User's code the difference is not nearly this large? Gr. Steven