のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:126,332,126人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレGCCについて part8

    gcc スレッド一覧へ / gcc とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - pragma + - spec + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    1 : デフォルトの名無 - 2007/10/13(土) 00:07:39 (+93,-30,-136)
    史上最強かもしれないツール、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
    2 : ◆3.JjF7 - 2007/10/13(土) 00:58:22 (-11,-29,+0)
    2get
    3 : デフォルトの名無 - 2007/10/13(土) 01:09:51 BE:328057362-2BP(100) (+23,+5,+0)
    >>1
    4 : デフォルトの名無 - 2007/10/17(水) 11:28:31 (+57,-30,-204)
    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,

    この問題をどこか詳しく説明している文書はありますでしょうか? 
    5 : デフォルトの名無 - 2007/10/17(水) 11:56:17 (+96,+29,-79)
    x86は浮動小数点数レジスタが80ビットあり、演算はこの大きさで行われる
    メモリに書き戻されるタイミングで64ビットに切り捨てられるのだが、
    コンパイラの最適化の具合によって
    メモリに書き戻されるタイミングが変わり、計算結果が変わることがある
    6 : デフォルトの名無 - 2007/10/17(水) 17:19:41 (+44,-30,-141)
    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はわかりやすいんだが。。。
    7 : デフォルトの名無 - 2007/10/17(水) 19:24:51 (+73,+29,-19)
    GCC用のソースをVCでコンパイルできるようにしてたときにちょっと引っかかったんだけど、
    構造体の初期化でメンバ名を指定できるのと、その他の初期値を指定できるなんて
    初めて見たよ。
    たしかに便利っちゃぁ便利だけど...
    8 : デフォルトの名無 - 2007/10/17(水) 19:39:32 (+19,-10,+2)
    全然普及しないC99
    9 : 4 - 2007/10/17(水) 19:41:08 (+67,+28,+1)
    >>5 >>6
    大変参考になりました。 ありがとうございます!
    10 : デフォルトの名無 - 2007/10/18(木) 06:39:02 (+6,-29,-1)
    >>7
    VCってC99サポートしてないの?
    11 : デフォルトの名無 - 2007/10/18(木) 06:52:22 (+45,+27,+1)
    してないよ
    12 : デフォルトの名無 - 2007/10/18(木) 16:55:33 (+57,+29,-19)
    低反発枕が凄い硬くて反発力が激しいのですが何とかなりませんか。
    13 : デフォルトの名無 - 2007/10/18(木) 18:13:06 (+45,+27,+0)
    知るか
    14 : デフォルトの名無 - 2007/10/18(木) 18:51:03 (+5,-27,+1)
    >>7
    コンパウンドリテラル
    15 : デフォルトの名無 - 2007/10/19(金) 16:41:06 (+5,-29,-22)
    >>7
    designated Initializerか
    >>8にもあるけどC99で取り入れられてるな
    16 : デフォルトの名無 - 2007/10/20(土) 08:33:01 (-1,-29,-11)
    max-inline-insns-singleはどのようなときに設定するものなのでしょうか?
    17 : デフォルトの名無 - 2007/10/20(土) 19:19:15 (+7,-30,-44)
    >>6

    いや、0.3=3/10は2進数では無限小数になって丸め誤差が出ているだけでは?

    0.3 = 0.10011001100110011001100…
    18 : デフォルトの名無 - 2007/10/20(土) 20:54:41 (+0,-29,+0)
    >>17 0.010011001・・・
    19 : デフォルトの名無 - 2007/10/25(木) 06:16:18 (+3,-29,-51)
    gccのプリプロセッサが、ヘッダファイルをどのディレクトリから探しているのか、探している様子を
    画面表示するオプションは無いでしょうか?

    gccの-iprefixオプションを使うと、途端にいくつかの標準ヘッダが見付からなくなる現象で悩んでます。
    20 : デフォルトの名無 - 2007/10/25(木) 09:08:33 (-6,-29,-6)
    -vじゃだめなの?
    21 : デフォルトの名無 - 2007/10/27(土) 07:52:36 (-1,-29,-48)
    GCC 4.3.0 Status Report (2007-10-25)
    http://gcc.gnu.org/ml/gcc/2007-10/msg00441.html

    stage3まではサクサク進んできたけど、現在バグ取りで膠着状態
    まだまだ使える状態じゃないっぽい
    22 : デフォルトの名無 - 2007/10/27(土) 10:29:55 (+62,+29,-30)
    コード生成以後もいろいろ大変なんだろうけど、
    C++やJavaみたいに、言語規格自体が大きくて、
    しょっちゅう変更される言語も含まれるから、
    リリースがどんどん重くなりそうだね。

    libstdc++なんか、言語処理系のバージョンとの関係が切り放せないし。
    23 : デフォルトの名無 - 2007/10/27(土) 22:51:53 (+44,+16,-4)
    C++は変更が2009年までに本当に終わるのかどうかが心配されているわけだが。。。
    24 : デフォルトの名無 - 2007/10/27(土) 22:55:55 (-2,-30,-36)
    gcc -gと-ggdbと-g3の違いは何でしょうか。gcc-4.1.2です。
    25 : デフォルトの名無 - 2007/10/28(日) 01:31:47 (+57,+29,-1)
    デバッグ情報をどれだけ入れるかの違い。
    26 : デフォルトの名無 - 2007/10/28(日) 01:33:24 (-1,-29,-20)
    もう少し具体的に。
    -g3のマクロ云々はいいので、-gと-ggdbだけでも。
    27 : デフォルトの名無 - 2007/10/28(日) 02:03:55 (-1,-29,-56)
    gcc -g はmanで詳細が調べられる
    gcc -ggdbはmanで詳細が調べられる
    gcc -g3はmanで詳細が調べられる

    これぐらいかな違いは。
    28 : デフォルトの名無 - 2007/10/28(日) 02:08:43 (+1,-26,-12)
    manにもinfoにも載ってないよ。
    29 : デフォルトの名無 - 2007/10/28(日) 05:58:40 (+52,+29,+0)
    構造体のパックってどうやるんですか
    30 : デフォルトの名無 - 2007/10/28(日) 07:06:55 (+2,-29,-6)
    パックしたい構造体に#pragma pack(1)を使う
    31 : デフォルトの名無 - 2007/10/28(日) 07:36:09 (-1,-29,-5)
    __attribute__((packed)) は?
    32 : デフォルトの名無 - 2007/10/28(日) 16:10:01 (-1,-29,+0)
    >>30-31
    pragma より atribute がお勧め。
    33 : デフォルトの名無 - 2007/10/28(日) 16:21:57 (+88,+29,-3)
    今時、構造体のパックして何するの?
    34 : デフォルトの名無 - 2007/10/28(日) 17:31:01 (+47,+29,+0)
    お肌にいい
    35 : デフォルトの名無 - 2007/10/28(日) 17:40:37 (+63,+29,-2)
    >>33
    昔は必要だったの?
    36 : デフォルトの名無 - 2007/10/28(日) 17:56:39 (+9,-29,-41)
    >>33
    余計なalignmentが入るのを防ぐ。

    最初にデータ構造ありき、な時は必要でしょ。
    ファイルフォーマットとかパケットの構造体作る時とか。
    37 : デフォルトの名無 - 2007/10/28(日) 18:08:32 (+57,+29,-7)
    そういうわけだから、今でも要るところには要る。
    38 : デフォルトの名無 - 2007/10/28(日) 18:14:06 (+32,-29,-23)
    アライメント違反でSIGBUSするCPUの場合はどうするの?
    39 : デフォルトの名無 - 2007/10/28(日) 18:17:31 (+62,+29,-55)
    >>38
    ずっと前に、コンパイラがバイト単位での読み書きに翻訳してくれたりした覚えが
    あるんだけど、今考えるとメンバ単体をポインタ経由でアクセスしたら死にそう。
    40 : デフォルトの名無 - 2007/10/28(日) 18:27:17 (+132,+29,-44)
    OSのカーネルがやってくれる場合もあるな。
    でも、OSもコンパイラも面倒見てくれない環境もあるべ。

    自分でバイト単位に書き込むのか?
    41 : デフォルトの名無 - 2007/10/28(日) 18:33:59 (+70,+29,-12)
    >>40
    だれも面倒見てくれないんなら自分でやればいいだろ。
    42 : デフォルトの名無 - 2007/10/29(月) 12:23:46 (+84,-29,-45)
    >>40
    trapで落ちてからか~、大昔からあるテクニックだけど今時のマシンでやったらstallしまくりでいやげだなぁ。
    softfloatとかも便利だけど鈍いよね。

    43 : デフォルトの名無 - 2007/10/29(月) 21:34:43 (+58,+29,+1)
    >>42
    だがそれがいい
    44 : デフォルトの名無 - 2007/10/29(月) 22:07:24 (+80,+30,-57)
    >>40
    エミュするのめんどいんで、自力でなんとかしてくれ。

    >>42
    正確に数えたことないけど数十倍の時間がかかるはず。
    根性でもう少し高速化できるかも知れんが、あくまで救済措置だからのう…
    そんな所にエネルギー使いたくない。


    45 : デフォルトの名無 - 2007/10/31(水) 03:47:24 (-1,-29,-21)
    __DATE__とか__TIME__を現在の日時に展開するのをやめさせたいんですが、何か方法はありますか?
    こいつらのせいで、毎回チェックサムの異なるバイナリが生成されてしまいます・・・。
    46 : デフォルトの名無 - 2007/10/31(水) 04:11:29 (-11,-29,-2)
    undef?
    47 : デフォルトの名無 - 2007/10/31(水) 04:27:42 (+34,+16,+0)
    できないみたい
    48 : デフォルトの名無 - 2007/10/31(水) 04:29:32 (-1,-29,-3)
    __DATE__と__FILE__を含む行をコメントアウト
    49 : デフォルトの名無 - 2007/10/31(水) 04:32:55 (-2,-30,-16)
    #define __DATE__ ""
    はムリ?
    50 : デフォルトの名無 - 2007/10/31(水) 04:36:47 (-6,-29,-2)
    redefeindでerror
    1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / gcc スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : - pragma + - spec + 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について