今日の作業

5:50 crosstool

crosstool-0.32きた! 早速挑戦。

って、buildlogみたら、gcc-4.0.0のsoft-floatは全滅じゃん……。

5:56

これが要るとのフォローがMLに流れてた。ちょうど昨日、crosstool-0.31でgcc-4.0-20050305のビルド作業をしていて、このパッチが必要なことに気づいたとこだった。まぁパッチ当ててもコンパイラのバグでglibcがビルド出来なかったんだけど。4.0.0リリースなら大丈夫かもしれんから、今からビルドしてみる。

7:45

arm-softfloat.dat + gcc-4.0.0-glibc-2.3.5.dat なんだけど、やっぱりcrosstool-0.31の時と同じとこでビルドに失敗する。どうもbinutilsのバグっぽいので、binutilsを2.15から2.14と2.15.91.0.2にかえてみたけど、どちらもダメ。glib-2.3.5/sysdeps/ieee754/dbl-64/s_erf.c内のerfc関数のアセンブルに失敗しているんで、とりあえず #if 0 〜 #endif してみる。(MPlayerは使ってないだろうし)

8:35

glibcは終わってgccのビルドに戻ってきたけど別のエラーが。パッチを修正して再チャレンジ。

10:38

なんかエラー出て止まったけど、必要なファイルはインストールされてるっぽい?んで、MPlayerをビルドしてみる。

何箇所か修正が必要だったけど、無事ビルド完了。結果は……うわ、画像がぐちゃぐちゃ。最適化がバグってんのかな。

とりあえずIPPを無効にしてるんで、速度の比較が出来ない。ARM版IDCTを使っているわりには速いような気がしなくもない。

続きはまた明日。

といいつつ、旧版でもARM-IDCTを使って比較してみた。……変わらん。むしろ遅くなってる?

まぁSSAになったから即速くなるわけじゃないのは当然だけど。より高度な最適化を施すためのフレームワークが整ったってことで。SSAならではの最適化の実装はこれからなんだろう。

gcc-4.2.3あたりで安定してgcc-3.xより性能が良くなるんじゃないかと予想してみる。