Re: Gcc compiler advantage and disadvantage of gcc

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>> But hopefully slightly less self serving.
>
> To be honest, it doesn't seem an unfair characterization to me.
>
> GCC could highlight the ethical and tit-for-tat benefits of the GPL, but I
> guess they do not see those as a benefit.
>
> GCC has also the benefit of being a more mature code base and, as a result,
> it has been more thoroughly tested in a wider range of codes; yet this is
> difficult to quantify and arguably Clang is more widely used today than GCC,
> just not in Linux, thus this might not be true anymore.

GCC does a much better job of optimizing. I run benchmarks for some
libraries regularly to ensure there are no regressions. GCC is
consistently 2x faster than Clang, and GCC is on-par with ICC.

It seems the slow-down is the treatment of const-expr's. Under the
laws of the physical universe as we know them, some values are fixed
at compile time won't change (regardless of their const-expr status).
GCC optimizes them (common sense), while Clang does not (expected to
somehow change).

That little slow down adds up, and it makes us do things like avoid
std::numeric_limits<T>::max() in favor of a #define instead. More
complex examples include propagating a constant using a template
parameter instead of a function parameter. GCC will realize a constant
does not change under the laws of the physical universe as we know
them; while Clang will treat the constant passed as a parameter as
something that can miraculously change after saving the source file.

Jeff



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux