Vladimir Makarov wrote:
Although it is not right argument to what you mean. But example
about vectorization would be right. ICC vectorizes many more loops
than gcc does. Vectorized loops is much bigger in size than their
non-vectorized variants. So faster code does not mean smaller code
in general. There are a lot of optimization which makes code bigger
and faster: like function versioning (based on argument values),
aggressive inlining, modulo scheduling, vectorization, loop
unrolling, loop versioning, loop tiling etc. So even if the both
compiler do the same optimizations and if one compiler is more
successful in such optimizations, the generated code will be bigger
and faster.
Sure, we can all find such examples, but if you take a large program,
(say hundreds of thousands of lines), you will find that the speed
vs size relation holds pretty well.