研究日誌。

大規模なグラフ処理に対してメモリ階層構造を考慮した高性能なソフトウェアを開発。

分岐ヒント。

2008-06-14 17:40:33 | Weblog
GCC では式の期待する値に対してヒントを与えられる。GCC はこのヒントを元にループの順序入れ換え等の最適化を行うそうだ。しかしながらこの構文はそのまま使うのには少し複雑なので、次のようにマクロにしておくと便利である。

#define likely(x) __builtin_expect (!!(x), 1)
#define unlikely(x) __builtin_expect (!!(x), 0)

これをダイクストラ法の一番外のループに適用してみたが、効果があまりなくむしろ低速化してしまった。これから先の高速化には自力でやるしかないようだ。

最新の画像もっと見る

コメントを投稿