日刊mosh - clangビルド対応
- http://storage.osdev.info/pub/mosh/mosh-current.tar.gz - mosh-0.2.5-508-g040375a
Clangでもコンパイルできるようになりました(trunk/2.8で確認)。
微妙に問題だったのは、
- inline asmを ; で終端できない
- 整数レジスタをdoubleに制約できない
という非常に地味なポイント。というか、gccのinline asmが;で終端できるのを知らなかった。。
パフォーマンスはイマイチ。やっぱりリンク時最適化が必要に思える。そろそろgcc4.6.0も出てgccもWHOPRが使えるようになるので、そこで比較したいところ。
Clangが落ちるテストケース
↑のコミットログにもあるけど、
int main(int ac,char **av){ double d; asm volatile("movd %%rax, %%xmm0\n" : "=a" (d) : :); }
のように、実装されていない(不正な)制約を使うと今のClangは落ちるようだ。