私は知識に何ものかを付け加え,また他の人々がより多くのものを付け加える手助けをした --- G.H.ハーディ gcc の独自拡張として,外側のスコープの変数を参照可能なローカル関数を定義できる (nested functions extension) というのがあります.例えば,こんなコードも valid です. #include <stdio.h> int main() { int foo(int x) { int bar(int y) { int baz() { return x + y; } return baz(); } return bar(20); } printf("%d\n", foo(10)); return 0; } $ gcc test.c $ ./a.out 30 今回は,こういう簡単なローカル関数の構文木を作ります. int main() { int x = 10
まだ正式版ではないけれど,かなり安定してきたらしいgcc4.1.変更点一覧*1によると,とにかく最適化が改善された模様. そこで,とりあえず以下のようなコードをつかって,最適化(特にauto-vectorization)ぐあいを確認してみた. #define SZ 320*240*10 void foo(const int * __restrict__ s, int * __restrict__ d) { int i; for (i=0;i<SZ;i++){ *d = (*s>0)?*s:0; d++; s++; } } int sum(const int * __restrict__ s) { int sum=0; int i; for (i=0; i<SZ; i++){ sum += *s; s++; } return sum; } int main() { static int sr
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く