2010年12月14日火曜日

メモ::GCC最適化オプション

PhyloBayesとnh_PhyloBayesがやっぱりiccでコンパイルできなかったので、とりあえず暫定的にGCC4.4.5でコンパイルすることにした。

最適化オプションは次のとおり


-march=core2
特定CPUのみに対する最適化オプション。=nativeは4.4ではコンパイルがポシャることがあるらしいのでやめといた。

-funroll-loops
ループ展開(loop unrolling)による最適化を実行。

-fno-math-errno
errno をセットしない

-fomit-frame-pointer 
フレーム・ポインタを必要としない関数においては、フレーム・ポインタをレジスタ内に保持しない。これにより、フレーム・ポインタの待避、セットアップ、復元を行う命令を使わずに済むようになる。 

-frerun-loop-opt 
ループ最適化を2回実行。 

-finline-functions
単純な関数はすべて、呼び出し側に統合(インライン展開)する。
  
-fforce-addr
メモリ・アドレス定数に対する算術演算が実行される前に、それをレジスタに強制的にコピーする。
  
-fforce-mem
メモリ・オペランドに対する算術演算が実行される前に、それをレジスタに強制的にコピーする。

-mfpmath=sse
-msse4.2
ともに浮動小数点演算のSIMD拡張命令セットに対する最適化。Core i7はSSE4.2(4.3だったかな)に対応。

0 件のコメント: