質問: 有名なコンパイラとして、gccとclangが存在しますが、webの記事を参照するとclangでビルドされたバイナリの方が性能が良いというような内容が多く見られます。 これは、現代的にはc言語のソースをビルドし、品質(省メモリ、実行速度)の良いバイナリを生成するのが目的ならば、すでにllvm環境のほうが有利でしかない状況になっているのが現状であるという認識で正しいでしょうか?
回答: x86 や x86-64 に限定してならば Yes と言っていいんぢゃないかな。でもだからといって全てのプログラマが gcc を捨てて clang に移行できるかというとそんなこともなくて。 世の中にはそれ以外の CPU がいっぱいあって gcc はそれらの多くに(普通のプログラマでは名前を聞いたことないようなマイナーな CPU にも)対応しているのに対して clang がサポートしている CPU は少ないとかの差はあるっすね。 x86/64 だと intel c++ compiler ってのもあるけどウチでは使っていないし、今 2018 年の時点でのコード効率比較記事ってのはちょっと探しただけでは見つからなかった。 (で、どうしても [c](/questions/tagged/c "'c' のタグが付いた質問を表示")/[c++](/questions/tagged/c%2b%2b "'c++' のタグが付いた質問を表示") でなきゃならないんだったら別だけど、できるだけ [c](/questions/tagged/c "'c' のタグが付いた質問を表示")/[c++](/questions/tagged/c%2b%2b "'c++' のタグが付いた質問を表示") を避けるってのが現代の世の趨勢)