アカウント名:
パスワード:
言われなくてもgccなんてシェアどんどん減っていますよ。今はllvm [wikipedia.org]もあるし。
もともとgccなんてフリーで手に入るくらいしかメリットなかったでしょう。生成するコードはVisual C++と比べても悪いし、変なgcc拡張 [u-tokyo.ac.jp]が多くてC/C++で書いていると言うよりgcc言語というC言語の類似言語みたいになっているし、どちらかというと弊害の方が大きかったと思います。で、llvmが実用になった今、gccを使うのは物好きだけではないかと。
pccはまだ使ったことはない。
素朴な疑問ですが、gccのコードがVisualC++よりも悪いというのはどこの情報でしょうか?
しまった-ffast-mathだった。
アセンブラコードで見るC++ Composer XEの強力な最適化機能http://osdn.jp/magazine/10/11/26/0710258/3 [osdn.jp]
Linux/Windows環境で広く使われているコンパイラの1つに、GCCがある。最新版のGCC(GCC 4.5.0)ではSSEサポートが行われており、たとえば「-march=core2 -msse4 -mfpmath=sse」といったオプションを指定することで、SSEを使用するコードを出力できる。
オプションを3つもつけて、あたかも公平にオプション使いこなしているかのように書いてあるのですが、-ffast-mathで一撃です。かく言う私も-mfpmath=sseと間違えてしまったので人の事言えないですけど。
-ffast-mathはIEEE規格を満たさないコードを生成する可能性があるんじゃありませんでしたっけ。比較相手もそのような規格を満たさない可能性のあるオプションをつけているとか、比較する領域が明確で、規格を外れるのが問題にならないことがわかっている、というのなら構いませんが、前提無しの一般的な比較では使えないオプションだと思います。
というのがまあ正論だと思うんですが、上記比較記事ではそれが構わない文脈だったのかどうか、までは確認してませんです。
今コンパイラの性能を言うなら、複数コアでの性能では無いでしょうか。どこかに言い比較記事はないものだろうか。
#ちなみに普段はPGIのコンパイラを使ってます
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
ソースを見ろ -- ある4桁UID
GPL汚染 (スコア:-1, 荒らし)
私としましては、「そんなにGNUが嫌いならgcc使うなよ、全部BSDで固めとけ」とか思っていても口にはしなかったのですが
これでようやくGNU離れできるわけですね?
何にしても良かった良かった
もう二度と返ってこないで下さいね
llvm (スコア:0, フレームのもと)
言われなくてもgccなんてシェアどんどん減っていますよ。今はllvm [wikipedia.org]もあるし。
もともとgccなんてフリーで手に入るくらいしかメリットなかったでしょう。生成するコードはVisual C++と比べても悪いし、変なgcc拡張 [u-tokyo.ac.jp]が多くてC/C++で書いていると言うよりgcc言語というC言語の類似言語みたいになっているし、どちらかというと弊害の方が大きかったと思います。で、llvmが実用になった今、gccを使うのは物好きだけではないかと。
pccはまだ使ったことはない。
Re: (スコア:0)
素朴な疑問ですが、gccのコードがVisualC++よりも悪いというのはどこの情報でしょうか?
Re:llvm (スコア:0)
ちょっと検索しただけでも、次のようなものが見つかりました。
参考:コンパイラを変えるだけでパフォーマンス向上、インテル コンパイラーの実力を見る
http://osdn.jp/magazine/08/12/24/118252/5
Re:llvm (スコア:1, 興味深い)
大抵はgccのコンパイラオプションを理解していない人が書いています。
Intelのコンパイラには豊富にオプションを設定するのにね。
数ヶ月前に/.Jにも頻繁に飛ばし記事の広告が出ていて嫌気がしました。
# gccにオプションが足りなくて、-mfpmath=sseって付けるだけでiccと同じ速度が実現出来る記事だった。
Re:llvm (スコア:2, 参考になる)
しまった-ffast-mathだった。
アセンブラコードで見るC++ Composer XEの強力な最適化機能
http://osdn.jp/magazine/10/11/26/0710258/3 [osdn.jp]
Linux/Windows環境で広く使われているコンパイラの1つに、GCCがある。最新版のGCC(GCC 4.5.0)ではSSEサポートが行われており、たとえば「-march=core2 -msse4 -mfpmath=sse」といったオプションを指定することで、SSEを使用するコードを出力できる。
オプションを3つもつけて、あたかも公平にオプション使いこなしているかのように書いてあるのですが、-ffast-mathで一撃です。
かく言う私も-mfpmath=sseと間違えてしまったので人の事言えないですけど。
Re: (スコア:0)
-ffast-mathはIEEE規格を満たさないコードを生成する可能性があるんじゃありませんでしたっけ。
比較相手もそのような規格を満たさない可能性のあるオプションをつけているとか、
比較する領域が明確で、規格を外れるのが問題にならないことがわかっている、というのなら構いませんが、
前提無しの一般的な比較では使えないオプションだと思います。
というのがまあ正論だと思うんですが、上記比較記事ではそれが構わない文脈だったのかどうか、
までは確認してませんです。
Re: (スコア:0)
とことんまで最適化して、どちらが速いかで良いのでは?
# Intel compiler が汎用性を持っているかは確認してませんです;-p
# Visual studio でも Windows で動けばいいのでは?
Re: (スコア:0)
今コンパイラの性能を言うなら、複数コアでの性能では無いでしょうか。
どこかに言い比較記事はないものだろうか。
#ちなみに普段はPGIのコンパイラを使ってます