4 ms·
> This is driven by programmers' insatiable thirst for performance. Compiler writers are constantly judged on benchmarks, and the only way to squeeze that last
by naniwaduni 7y ago
> This is driven by programmers' insatiable thirst for performance. Compiler writers are constantly judged on benchmarks, and the only way to squeeze that last flop out of a piece of code is to take the specification to its extreme.
Really? I've seen people switch between competing compilers for licensing reasons, platform support, features---but benchmark performance? Maybe blog posts suggesting that a new compiler wasn't ready.
Compiler writers judge themselves on benchmarks.
- mhh__ 7y agoIt might not be true now because LLVM and GCC can generally put a commercial compiler 6 feet under, but if you're paying for a compiler you'd definitely want to choose the one that delivers the best performance (Money being no object) No idea whether ICC is still worth paying for
- userbinator 7y agoNo idea whether ICC is still worth paying for From my experience, ICC is far more reluctant to exploit UB, yet still generates very good code.
- saagarjha 7y agoICC exploits the standard itself: it generates code that is technically incorrect.
- mehrdadn 7y agoWhat do you mean?
- saagarjha 7y agoAs Patrick mentions, ICC generates code that doesn't follow IEEE-754: https://news.ycombinator.com/item?id=20437375 https://news.ycombinator.com/item?id=20437375 (I should have mentioned I was talking about that rather than the C standard).
- mehrdadn 7y agoOh I see, you're talking about floating point. So basically ICC has -ffast-math (or -funsafe-math-optimizations) on by default, and you can turn it off with an explicit flag? I see this as more of a philosophical difference than a material one since you can just add or remove the flag on either one...
- closeparen 7y agoCompetitive performance for your workload is basically the reason you would buy Intel's compiler, right?
- dllthomas 7y agoIME, benchmarks aren't enough of an impetus to move between compilers, but are often a not-insignificant piece of what's considered when moving is otherwise motivated.
- SamReidHughes 7y agoFor C++, compilation time performance is the benchmark. At least it's why I started using clang.