firefox-1.0.6 を gcc-4.0 でコンパイルしてみる.

いつのまにやら,debian の unstable に firefox-1.0.6 が投入されている.そこで,stable用のパッケージを作ってみた.といっても debian なのでコマンドを数回叩くだけ.

$ apt-get source firefox-1.0.6
$ cd firefox-1.0.6
$ dpkg-buildpackage -us -uc -rfakeroot
$ cd ../
$ sudo dpkg -i mozilla-firefox_1.0.6-1_i386.deb

ついでにgcc-3.4とgcc-4.0で最適化をかけてコンパイルし,ベンチマーク*1を取ってみた.結果は下表のようになり(単位は秒),僅かに gcc-4.0 のほうが速くなった.

gcc-3.4 gcc-4.0.1(a) gcc-4.0.1(b) gcc-4.0.1(c)
1回目 18.17 17.99 14.22 起動せず
2回目 16.51 16.05 16.10 起動せず

ちなみに,使用したコンパイラオプションはそれぞれ以下のとおり.

gcc-3.4 -O3 -mtune=pentium4
gcc-4.0.1(a) -O3 -mtune=pentium4
gcc-4.0.1(b) -O3 -mtune=pentium4 -msse2 -mfpmath=sse
gcc-4.0.1(c) -O3 -mtune=pentium4 -msse2 -mfpmath=sse -ftree-vectorize

gcc-4.0.1(c) の結果のように -ftree-vectorize を付けると,起動時に segmentation fault で落ちるバイナリが出来てしまった.コンパイラのバグかな?