あけまして
あけましておめでとうございます。
今年は辰年ということなので、dragonですよね。
というわけでdragonegg(http://dragonegg.llvm.org/)を使えるようにしてみました。
dragoneggとは
dragoneggはGCCのプラグイン機能を使ってLLVMによる最適化をしようというものらしいです。
現状、Linuxとdarwin(Mac)でしか使えなさそう。
- [参考サイト]
今のところそれほど良いことは無さそうな気がするので
私は使えるようにしただけで終わりました。
インストール方法だけメモっときます。Macのみです。
インストール
gccとllvmとdragoneggが必要です。全部macportsで入れます。
落とし穴ですが、macportsのgccはltoが有効になってないのでportfileをいじってltoを有効にできるようにします。
本当は野良portfileを作ってゴニョゴニョするのがいいのしれませんが、面倒くさいのでportfileを直接いじります。
$ sudo port edit gcc46
でgcc4.6のportfileを開きます。そんで、
variant lto description {enable the Link Time Optimization} { configure.args-append --enable-lto }
という記述を追加します。これでmacportsでltoを指定できるようになります。
そしてgcc46をインストール
$ sudo port install gcc46 +lto
うまくインストールできることを願って下さい。次にllvmとdragonegg
$ sudo port install llvm-3.0 $ sudo port install dragonegg-3.0
同時にやってしまってもいいかもしれません。
うまくいけば、dragonegg-LLVMバージョン-xxxとかいうものが使えるようになるはず。
g++なら
$ dragonegg-3.0-g++ -std=c++0x main.cpp -o main
というかんじで。実際はg++に-fplugin=...とかいうオプションつけてるだけなはずなので、g++のコンパイルオプションとかも使えます。
どの程度最適化されるんでしょうね・・・
そうそう、年賀状代わりにdragoneggのロゴ置いときます。
ヌーの人とは関係ないですよ・・