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

B.2.16 -fast

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

-fast の展開内容に、-xlibmopt も含まれるようになっています。このオプションによって、コンパイラは最適化された数学ルーチンのライブラリを利用できます。詳細は、「B.2.99 -xlibmoptを参照してください。

-fast オプションは、errno の値に影響します。詳細は、「2.10 errno の値」を参照してください。

-fast を指定してコンパイルしたモジュールは、-fast を指定してリンクする必要があります。「A.1.2 コンパイル時とリンク時のオプション」に、コンパイル時とリンク時の両方に指定する必要があるコンパイラオプションの全一覧をまとめています。

-fast オプションは、特にコンパイルするマシンとは異なるターゲットで実行するプログラムでは使用できません。そのような場合は、-fast のあとに適切な -xtarget オプションを指定します。次に例を示します。


cc -fast -xtarget=ultra ...

SUID によって規定された例外処理に依存する C モジュールに対しては、-fast のあとに -xnolibmil を指定します。


% cc -fast -xnolibmil

-xlibmil を使用すると、例外発生時でも errno が設定されず、また、matherr(3m) が呼び出されません。

-fast オプションは、厳密な IEEE 754 規格準拠を必要とするプログラムには適していません。

次に、-fast により指定されるオプションをプラットフォームごとに示します。

表 B–5 -fast 展開時のフラグ

オプション 

SPARC 

x86 

-fns

-fsimple=2

-fsingle

-nofstore

-xalias_level=basic

-xbuiltin=%all

-xdepend

-xlibmil

-xlibmopt

-xmemalign=8s

-xO5

-xprefetch=auto,explicit

-xregs=frameptr

-xtarget=native


注 –

一部の最適化では、プログラムの動作が特定の動作になることを想定しています。プログラムの動作がその想定に適合していない場合は、アプリケーションがクラッシュする、または誤った結果が生成されることがあります。プログラムが -fast を指定したコンパイルに適しているかどうかを特定するには、各オプションの説明を参照してください。


これらのオプションにより最適化を実行した場合は、プログラムの動作が ISO C および IEEE の規格での定義と異なることがあります。詳細については、各オプションの説明を参照してください。

-fast はコマンド行でマクロ展開のように動作します。したがって、最適化レベルとコード生成の内容を -fast のあとに指定したオプションで指定した場合は、-fast での指定は無視されます。「-fast -xO4」でコンパイルすることは「-xO2 -xO4」の組み合わせでコンパイルすることと同じで、後ろの指定が優先されます。

このオプションは、IEEE 規格例外処理に依存するプログラムには使用しないでください。数値結果が異なったり、プログラムが途中で終了したり、予想外の SIGFPE シグナルが発生する可能性があります。