gcc3 の最適化オプション
ちょっとだけメモ。
-mcpu=<xxx>, -march=<xxx> がどんな命令セットを設定するかを調べるには gcc/gcc/gcc/config/i386/i386.c(savannah の cvs) の processor_alias_table を読め、ということらしい。
OpenBSD だと、src/gnu/usr.bin/gcc/gcc/config/i386/i386.c あたり。
で、突然個人的な話になるわけだけど、Pentium M だとどれが最適なんだろう?これって SSE2 つきの Pentium III だから pentium4 でいいのかなあ(ちなみに pentium4 にセットすると -mmmx -msse -msse2 が自動的に有効になる)。 とりあえずこれでユーザランドつくってみよう。
-mfpmath=<xxx> も指定すればさらに高速に演算できるようになるらしいんだけど、http://www.radiumsoftware.com/0304.html#030410 によれば若干計算精度が落ちるらしいので、これはデフォルト設定のままにしておいて、あとはアプリケーションごとに指定することにしよう(マルチメディアやゲームのコンパイルなら -mfpmath=sse にする、とかね)。
ところで、同ディレクトリの i386.md あたりは純然たる lisp コードやねえ。http://cruel.org/freeware/rmslecture.html#34 あたりにもあるけど、RMS の趣味がよくわかる。