パフォーマンスを向上するために、各種コンパイラオプションの最適の組み合わせを選択します。これにより、大部分のアプリケーションを対象としてほぼ最大限のパフォーマンスが得られるようになります。-fast を使用してコンパイルしたモジュールは必ず、 -fast でリンクしなければなりません。
-fast オプションは、コンパイルを行なったマシンとは別のマシンでプログラムを実行する場合には適していません。このような場合は、-fast の後に該当する xtarget オプションを指定します。たとえば、次のとおりです。
cc -fast -xtarget=ultra ...
SVID によって規定された例外処理に依存する C モジュールに対しては、-fast の後に -nolibmil を指定します。
% cc -fast -nolibmil
-xlibmil を使用すると、例外発生時でも errno が設定されなかったり、あるいは matherr(3m) が呼び出されません。
-fast オプションは、厳密な IEEE 754 規格準拠を必要とするプログラムには適していません。
-fast で選択する各オプションは、プラットフォームごとに異なります。
表 2-2 プラットフォーム別の -fast の選択
オプション |
SPARC |
x86 |
-dalign |
○ |
− |
-fns |
○ |
○ |
-fsimple=1 |
○ |
− |
-ftrap=%none |
○ |
○ |
-libmil |
○ |
○ |
-xtarget=native |
○ |
○ |
-nofstore |
− |
○ |
-xO4 |
○ |
○ |
-fsingle |
○ |
○ |
-fast はコマンド行でマクロ展開のように動作します。したがって、最適化レベルとコード生成の内容を、-fast の後に指定したオプションで指定した場合は、-fast での指定は無視されます。「-fast -xO4」でコンパイルすることは「-xO2 -xO4」の組み合わせでコンパイルすることと同じで、後ろの指定が優先されます。
前回のリリースでは、-fast のマクロオプションには -fnonstd が含まれていましたが、今回のリリースでは、-fns に置き換えられています。
このオプションを使用すれば、大部分のプログラムのパフォーマンスを向上させることができます。
このオプションは、IEEE 規格例外処理に依存するプログラムには使用しないでください。数値結果が異なったり、プログラムが途中で終了したり、予想外の SIGFPE シグナルが発生する可能性があります。