私的良スレ書庫
不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitterでログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。
元スレGCCについて part8
gcc スレッド一覧へ / gcc とは? / 携帯版 / dat(gz)で取得 / トップメニューみんなの評価 : ☆
レスフィルター : (試験中)
史上最強かもしれないツール、GCC(GNU Compiler Collection)について語るスレ。
GNU本家のGCCページ
http://gcc.gnu.org/
Binutils - Collection of binary utilities ←これも必要だぞ。
http://www.gnu.org/directory/GNU/binutils.html
GNU Binutils
http://sources.redhat.com/binutils/
GCC online documentation
http://gcc.gnu.org/onlinedocs/
Installing GCC
http://gcc.gnu.org/install/
GCC Timeline
http://gcc.gnu.org/releases.html#timeline
Calendar
http://gcc.gnu.org/develop.html#timeline
前スレ
GCCについて part7
http://pc11.2ch.net/test/read.cgi/tech/1145357824/l50
GNU本家のGCCページ
http://gcc.gnu.org/
Binutils - Collection of binary utilities ←これも必要だぞ。
http://www.gnu.org/directory/GNU/binutils.html
GNU Binutils
http://sources.redhat.com/binutils/
GCC online documentation
http://gcc.gnu.org/onlinedocs/
Installing GCC
http://gcc.gnu.org/install/
GCC Timeline
http://gcc.gnu.org/releases.html#timeline
Calendar
http://gcc.gnu.org/develop.html#timeline
前スレ
GCCについて part7
http://pc11.2ch.net/test/read.cgi/tech/1145357824/l50
>>1乙
x86です。
double d = 0.3; int i;
i = d * 1000;
とすると i=299になります。
d = d * 1000; i = d;
とするとi=300になります。 Macのgccで試したら300になるので生成したコードを調べると
SSE2インストラクションを使ってました。試しに-msse2でコンパイルすると両方とも300に
なりました。 gccは3.2.2, 3.3.5, 4.1.1と試しましたが全部同じです。
manに書かれている以下の文が関係しているのでしょうか?
... -msse2 ...
The resulting code should be considerably faster in the major-
ity of cases and avoid the numerical instability problems of
387 code,
この問題をどこか詳しく説明している文書はありますでしょうか?
double d = 0.3; int i;
i = d * 1000;
とすると i=299になります。
d = d * 1000; i = d;
とするとi=300になります。 Macのgccで試したら300になるので生成したコードを調べると
SSE2インストラクションを使ってました。試しに-msse2でコンパイルすると両方とも300に
なりました。 gccは3.2.2, 3.3.5, 4.1.1と試しましたが全部同じです。
manに書かれている以下の文が関係しているのでしょうか?
... -msse2 ...
The resulting code should be considerably faster in the major-
ity of cases and avoid the numerical instability problems of
387 code,
この問題をどこか詳しく説明している文書はありますでしょうか?
x86は浮動小数点数レジスタが80ビットあり、演算はこの大きさで行われる
メモリに書き戻されるタイミングで64ビットに切り捨てられるのだが、
コンパイラの最適化の具合によって
メモリに書き戻されるタイミングが変わり、計算結果が変わることがある
メモリに書き戻されるタイミングで64ビットに切り捨てられるのだが、
コンパイラの最適化の具合によって
メモリに書き戻されるタイミングが変わり、計算結果が変わることがある
floatだと300になるんだよなぁ。
最初の方で
double d = 2.99999999999999988897769753748434595763683319092e-1;
float f = 3.00000011920928955078125e-1;
に変換されていた。
-O0だとハードウェアが使うそのままの形で渡すから、マシン依存ってことかな?
-O2だとmsse2じゃなくても300になった。
http://gcc.gnu.org/bugs.html#known だね。
gccはrtlとか出てきたらよく分からんなぁ。GIMPLEはわかりやすいんだが。。。
最初の方で
double d = 2.99999999999999988897769753748434595763683319092e-1;
float f = 3.00000011920928955078125e-1;
に変換されていた。
-O0だとハードウェアが使うそのままの形で渡すから、マシン依存ってことかな?
-O2だとmsse2じゃなくても300になった。
http://gcc.gnu.org/bugs.html#known だね。
gccはrtlとか出てきたらよく分からんなぁ。GIMPLEはわかりやすいんだが。。。
GCC用のソースをVCでコンパイルできるようにしてたときにちょっと引っかかったんだけど、
構造体の初期化でメンバ名を指定できるのと、その他の初期値を指定できるなんて
初めて見たよ。
たしかに便利っちゃぁ便利だけど...
構造体の初期化でメンバ名を指定できるのと、その他の初期値を指定できるなんて
初めて見たよ。
たしかに便利っちゃぁ便利だけど...
>>7
VCってC99サポートしてないの?
VCってC99サポートしてないの?
>>7
コンパウンドリテラル
コンパウンドリテラル
>>17 0.010011001・・・
gccのプリプロセッサが、ヘッダファイルをどのディレクトリから探しているのか、探している様子を
画面表示するオプションは無いでしょうか?
gccの-iprefixオプションを使うと、途端にいくつかの標準ヘッダが見付からなくなる現象で悩んでます。
画面表示するオプションは無いでしょうか?
gccの-iprefixオプションを使うと、途端にいくつかの標準ヘッダが見付からなくなる現象で悩んでます。
GCC 4.3.0 Status Report (2007-10-25)
http://gcc.gnu.org/ml/gcc/2007-10/msg00441.html
stage3まではサクサク進んできたけど、現在バグ取りで膠着状態
まだまだ使える状態じゃないっぽい
http://gcc.gnu.org/ml/gcc/2007-10/msg00441.html
stage3まではサクサク進んできたけど、現在バグ取りで膠着状態
まだまだ使える状態じゃないっぽい
コード生成以後もいろいろ大変なんだろうけど、
C++やJavaみたいに、言語規格自体が大きくて、
しょっちゅう変更される言語も含まれるから、
リリースがどんどん重くなりそうだね。
libstdc++なんか、言語処理系のバージョンとの関係が切り放せないし。
C++やJavaみたいに、言語規格自体が大きくて、
しょっちゅう変更される言語も含まれるから、
リリースがどんどん重くなりそうだね。
libstdc++なんか、言語処理系のバージョンとの関係が切り放せないし。
gcc -g はmanで詳細が調べられる
gcc -ggdbはmanで詳細が調べられる
gcc -g3はmanで詳細が調べられる
これぐらいかな違いは。
gcc -ggdbはmanで詳細が調べられる
gcc -g3はmanで詳細が調べられる
これぐらいかな違いは。
>>30-31
pragma より atribute がお勧め。
pragma より atribute がお勧め。
>>33
昔は必要だったの?
昔は必要だったの?
OSのカーネルがやってくれる場合もあるな。
でも、OSもコンパイラも面倒見てくれない環境もあるべ。
自分でバイト単位に書き込むのか?
でも、OSもコンパイラも面倒見てくれない環境もあるべ。
自分でバイト単位に書き込むのか?
>>40
だれも面倒見てくれないんなら自分でやればいいだろ。
だれも面倒見てくれないんなら自分でやればいいだろ。
>>42
だがそれがいい
だがそれがいい
__DATE__とか__TIME__を現在の日時に展開するのをやめさせたいんですが、何か方法はありますか?
こいつらのせいで、毎回チェックサムの異なるバイナリが生成されてしまいます・・・。
こいつらのせいで、毎回チェックサムの異なるバイナリが生成されてしまいます・・・。
類似してるかもしれないスレッド
- GCCについて part9 (1001) - [95%] - 2011/9/2 21:17 ○
- GCCについて part10 (538) - [90%] - 2018/7/5 20:30
- Cygwin + MinGW + GCC 相談室 Part 8 (938) - [18446744073709551610%] - 2022/10/28 8:00
トップメニューへ / →のくす牧場書庫について