Sun Studio 12: C++ ユーザーズガイド

A.2.18 -fast

このオプションは、 実行ファイルの実行時のパフォーマンスのチューニングで効果的に使用することができるマクロです。-fast は、コンパイラのリリースによって変更される可能性があるマクロで、ターゲットのプラットフォーム固有のオプションに展開されます。-# オプションまたは -xdryrun を使用して -fast の展開を調べ、-fast の該当するオプションを使用して実行可能ファイルのチューニングを行なってください。

このオプションは、コードをコンパイルするマシン上でコンパイラオプションの最適な組み合わせを選択して実行速度を向上するマクロです。

A.2.18.1 拡張

このオプションは、次のコンパイラオプションを組み合わせて、多くのアプリケーションのパフォーマンスをほぼ最大にします。

表 A–5 -fast の拡張

オプション 

SPARC 

x86 

-fns

-fsimple=2

-nofstore

-xarch

-xbuiltin=%all

-xdepend

-xlibmil

-xlibmopt

-xmemalign

-xO5

-xregs=frameptr

-xtarget=native

相互の関連性

-fast マクロから展開されるコンパイラオプションが、指定されたほかのオプションに影響を与えることがあります。たとえば、次のコマンドの -fast マクロの展開には -xtarget=native が含まれています。そのため、ターゲットのアーキテクチャーは -xarch に指定された SPARC-V9 ではなく、32 ビットアーキテクチャーのものに戻されます。


example% CC -xarch=v9 -fast test.cc


example% CC -fast -xarch=v9 test.cc

個々の相互の関連性については、各オプションの説明を参照してください。

このコード生成オプション、最適化レベル、組み込み関数の最適化、インラインテンプレートファイルの使用よりも、そのあとで指定するフラグの方が優先されます (例を参照)。ユーザーの指定した最適化レベルは、以前に設定された最適化レベルを無効にします。

-fast オプションには -fns -ftrap=%none が含まれているため、このオプションによってすべてのトラップが無効になります。

次のコンパイラコマンドでは、最適化レベルは -x03 になります。


example% CC -fast -xO3

次のコンパイラコマンドでは、最適化レベルは -xO5 になります。


example% CC -xO3 -fast

警告

別々の手順でコンパイルしてリンクする場合は、-fast オプションをコンパイルコマンドとリンクコマンドの両方に表示する必要があります。

コンパイラで -fast オプションを指定すると、そのコードの移植性は失われます。たとえば、UltraSPARC-III システムで次のコマンドを指定すると、生成されるバイナリは UltraSPARC-II システムでは動作しません。


example% CC -fast test.cc

IEEE 標準の浮動小数点演算を使用しているプログラムには、-fast を指定しないでください。計算結果が違ったり、プログラムが途中で終了する、あるいは予期しない SIGFPE シグナルが発生する可能性があります。

以前のリリースの SPARC では、-fast マクロは -fsimple=1 に展開されました。現在では、-fsimple=2 に展開されます。

以前のリリースでは、-fast マクロは -xO4 に展開されました。現在では、-xO5 に展開されます。


注 –

以前の SPARC リリースでは -fast マクロに -fnonstd; が含まれていましたが、このリリースでは含まれていません。-fast では、非標準浮動小数点モードは初期化されません。『数値計算ガイド』と ieee_sun(3M) のマニュアルページを参照してください。


関連項目

-fns-fsimple-ftrap=%none-xlibmil-nofstore-xO5-xlibmopt-xtarget=native