タグ

gccに関するkgbuのブックマーク (5)

  • 最適化・並列化コードを生み出す最新コンパイラ「インテル コンパイラー」 | OSDN Magazine

    最近のコンパイラには、出力するバイナリコードをより高速に実行できるようにする「最適化」機能が搭載されている。CPUPCアーキテクチャがより複雑化している近年、コンパイラによる最適化はより注目を浴びるようになっている。 たとえば、現在のCPUはいわゆる「マシン語」のコマンド列をそのまま実行するのではなく、内部でより細かい単位に分解して実行する。このとき、CPUのリソースをより効率良く利用できるよう、場合によってはその順序の並び替えや、並列化が行われる。また、処理を行うデータがキャッシュされているかどうかによっても処理速度が大きく変化する。CPUクロックの向上により、CPUとメモリ間でデータをやりとりする時間についても大きなボトルネックとなるようになったからだ。 このようにCPUの動作が複雑になっている現在、「より速く実行できるコード」を生成するには、CPUの構造やその動作についての知識も必

    最適化・並列化コードを生み出す最新コンパイラ「インテル コンパイラー」 | OSDN Magazine
    kgbu
    kgbu 2009/01/13
    CPUがこれだけダイナミックなシステムになってしまったからには、人手でできることは、もっと別のレベルになったのだろうな。生成されるコードも、brute forceな手法で作られてたりしかねないし、少なくともテストは大変
  • GCC Tips - eLinux.org

    What's Here, Why You Should Care A collection of tips useful to those doing embedded development. Accumulated over several years of doing project work, helping other engineers, untangling projects for customers and feedback from several CELF presentations related to this topic. View Compilation Plan gcc -### <the rest of your command line goes here> The GCC you run is a driver program for a bunch

  • 関数ポインタのキャストと gcc - まめめも

    C の関数呼び出しは、関数定義の型と互換性のない型として呼び出したら未定義動作です。例えば以下のコードの動作は未定義です。 #include <stdio.h> int main(void) { ((int (*)(char *, ...)) &printf)("Hello, world!\n"); } printf は int printf(const char *, ...) なので、const が無くなってるのが間違ってます。未定義のプログラムはどのような実行結果になろうとも、C の規格には違反しません。 でも、現実問題としてこのコードは期待通りに動くだろー、と高をくくってました。しかし最近の gcc (3.4 以降くらい) では、このコードは落ちます。 $ gcc --version gcc (GCC) 4.3.1 Copyright (C) 2008 Free Software

    関数ポインタのキャストと gcc - まめめも
    kgbu
    kgbu 2008/09/01
    C言語というか、gccのようなコンパイラおよび、最適化の対象となるCPUのモデルって恐ろしく複雑怪奇なもののように思える。本当にこれでいいんだろうか(笑
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
    kgbu
    kgbu 2008/07/10
    makeを実行するとき、並列度を指定できるのかー
  • GCC とメタプログラミング - 兼雑記

    GCC やっぱすごいなぁという話 まぁコード生成する類のものは全部メタプログラミングだと考えるとします。当時のkinaba先生世界観。例としては C のコードを cpp で C にするとか、 C のコードを gcc で asm にするとか autotools でほげほげとか。 それはともかく最近思いついた(全然コードを読まない)コードリーディング技法として make してみてその標準出力をゆっくり眺めるというものがあります。ファイルの依存関係がわかれば割と内容は予測がついたりします。あと GCC のコード眺める技法として gdb で適当に break しかけてバックトレースを見ると普通に追うよりラクというのがあるのですがそれは別の話。 でまぁ make の出力とか見てると GCC ってすごいメタプログラミングの宝庫だなぁと思ったのでした。特にフロントエンド側よりバックエンド側がにんともかん

    GCC とメタプログラミング - 兼雑記
    kgbu
    kgbu 2008/01/18
    メタプログラミングは、ソースを変換することと見つけたり(?)マクロとかプリプロセッサとか
  • 1