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

3.3 オプションのまとめ

この節では、各コンパイラオプションを機能別に分類し、概略を説明します。詳細は、次の詳細欄に示すページを参照してください。

SPARC および x64/x86 プラットフォーム両方ですべてのオプションを使用できるわけではないことに注意してください。使用可能かどうかについては、詳細オプションリファレンスの節で確認してください。

次の表に、f95 のコンパイラオプションを機能別にまとめます。この表には、廃止されたり使用されなくなったりしたオプションフラグは含まれていません。フラグによっては、複数の使用目的があるため、複数の個所に記載されているものがあります。

表 3–3 機能別コンパイラオプション

機能 

オプションフラグ 

コンパイルモード

 

コンパイルのみ。 実行可能ファイルを生成しません。 

-c

 

ドライバが作成するコマンドを表示するが、コンパイルは行われません。 

-dryrun

 

FORTRAN 77 拡張子および互換性をサポートします。 

-f77

 

コンパイルされる .mod モジュールファイルを記述するためのパスを指定します。

-moddir=path

 

書き込むオブジェクト、ライブラリ、実行可能ファイルの名前を指定します。 

-o filename

 

コンパイルし、アセンブリコードだけを生成します。 

-S

 

実行可能プログラムからシンボルテーブルを除外します。 

-s

 

エラーメッセージ以外のコンパイラメッセージを出力しません。 

-silent

 

一時ファイルのディレクトリへのパスを定義します。 

-temp=path

 

各コンパイルフェーズの経過時間を示します。 

-time

 

コンパイラおよびそのフェーズのバージョン番号を示します。 

-V

 

冗長メッセージを表示します。 

-v

 

標準外の別名を付ける状況を指定します。 

-xalias=list

 

マルチプロセッサによるコンパイル 

-xjobs=n

コンパイルされるコード

 

外部名の末尾に下線を追加/抑制します。 

-ext_names=x

 

インライン化するユーザー関数を指定します。 

-inline=list

 

コンパイル位置独立コードを指定します。 

-KPIC/-kpic

 

特定の数学ライブラリルーチンをインライン化します。 

-libmil

 

STOP で整数のステータス値をシェルに返します。 

-stop_status[=yn]

 

コードアドレス空間を指定します。 

-xcode=x

 

先読み命令を有効にします。 

-xprefetch[=x]

 

オプションのレジスタを指定します。 

-xregs=x

 

デフォルトのデータマッピングを指定します。 

-xtypemap=x

データの境界整列

 

COMMON ブロック内のデータの境界整列を指定します。 

-aligncommon[=n]

 

強制的に COMMON ブロックデータの境界整列を行い、マルチワードのフェッチ/ストアを可能にします。 

-dalign

 

全データを 8 バイト境界に強制的に整列させます。 

-dbl_align_all

 

COMMON ブロックデータを 8 バイト境界に整列させます。 

-f

 

メモリーの境界整列と動作を指定します。 

-xmemalign[=ab]

デバッグ

 

実行時に添字の範囲検査を有効にします。 

-C

 

dbx を使用するデバッグのためにコンパイルします。

-g

 

ソースブラウザを使用するブラウズのためにコンパイルします。 

-sb, -sbfast

 

未宣言変数の検査を行います。 

-u

 

C$PRAGMA ASSUME 表明をチェックします。

-xassume_control=check

 

実行時のスタックオーバーフローを確認します。 

-xcheck=stkovf

 

実行時の taskcommon の整合性検査を有効にします。 

-xcommonchk

 

パフォーマンスアナライザのためにコンパイルします。 

-xF

 

相互参照リストを作成します。 

-Xlistx

 

オブジェクトファイルを使用せずにデバッグ機能を有効にします。 

-xs

診断

 

非標準の拡張機能を報告します。 

-ansi

 

特定のエラーメッセージの出力を抑制します。 

-erroff=

 

エラーメッセージとともにエラータグ名を表示します。 

-errtags

 

コンパイラオプションの要約を表示します。 

-flags, -help

 

コンパイラおよびその構成要素のバージョン番号を示します。 

-V

 

冗長メッセージを表示します。 

-v

 

並列化メッセージを冗長表示します。 

-vpara

 

警告メッセージを表示/抑制します。 

-wn

 

コンパイラの README ファイルを表示します。 

-xhelp=readme

ライセンス

 

ライセンスサーバー情報を表示します。 

-xlicinfo

リンクおよびライブラリ

 

動的/静的ライブラリを許可します/要求します。 

-Bx

 

動的/静的なライブラリのみのリンクを許可します。 

-dy, -dn

 

動的 (共有オブジェクト) ライブラリを作成します。 

-G

 

動的ライブラリの名前を指定します。 

-hname

 

ディレクトリをライブラリ検索パスに追加します。 

-Lpath

 

libname.a または libname.so というライブラリをリンクします。

-lname

 

実行時ライブラリの検索パスを実行可能プログラムに組み込みます。 

-Rpath

 

インクリメンタルリンカー ild を使用不可にします。

-xildoff

 

最適化数学ライブラリをリンクします。 

-xlibmopt

 

Sun のパフォーマンスライブラリをリンクします。 

-xlic_lib=sunperf

 

リンクエディタのオプションを指定します。 

-zx

 

再配置のない閉じたライブラリを生成します。 

-ztext

数値および浮動小数点

 

非標準の浮動小数点の設定を使用します。 

-fnonstd

 

SPARC 非標準浮動小数点を選択します。 

-fns

 

入力中に実行時浮動小数点オーバーフロー検査を有効にします。 

-fpover

 

IEEE 浮動小数点丸めモードを選択します。 

-fpround=r

 

浮動小数点最適化レベルを選択します。 

-fsimple=n

 

浮動小数点トラップモードを選択します。 

-ftrap=t

 

書式付き入出力のための丸め方法を指定します。 

-iorounding=mode

 

単精度定数を倍精度に変換します。 

-r8const

 

区間演算を有効にし、適切な浮動小数点環境を設定します (-xinterval を含む)。

-xia[=e]

 

区間演算機能を有効にします。 

-xinterval[=e]

最適化とパフォーマンス

 

ループを解析して、データ依存関係を調べます。 

-depend

 

オプションを一括で指定して最適化します。 

-fast

 

最適化レベルを指定します。 

-On

 

効率的なキャッシュ使用のためにデータレイアウトをパディングします。 

-pad[=p]

 

局所変数をメモリースタックに割り当てます。 

-stackvar

 

ループ展開を有効にします。 

-unroll[=m]

 

ソースファイル間での最適化を有効にします。 

-xcrossfile[=n]

 

内部手続きの最適化パスを呼び出します。 

-xipo[=n]

 

#pragma OPT に最高レベルの最適化を設定します。

-xmaxopt[=n]

 

コンパイル後の最適化用にコンパイルします。 

-xbinopt=prepare

 

コンパイラが生成する先読み命令を有効にするか、または調整します。 

-xprefetch=list

 

先読み命令の自動生成をコントロールします。 

-xprefetch_level=n

 

パフォーマンスプロファイルデータの生成または使用を有効にします。 

-xprofile=p

 

メモリーベースのトラップが発生しないであろうと表明します。 

-xsafe=mem

 

コードサイズが増加する場合は、最適化を行いません。 

-xspace

 

ベクトルライブラリ関数の呼び出しを自動的に作成します。 

-xvector[=yn]

並列化

 

DO ループの自動並列化を有効にします。 

-autopar

 

ループの並列化情報を表示します。 

-loopinfo

 

マルチスレッド用にプログラミングされたコードをコンパイルします。 

-mt

 

OpenMT API 指令を受け付け、適切な環境を設定します。 

-xopenmp[=keyword]

 

自動並列化でループ内の縮約操作を認識します。 

-reduction

 

並列化メッセージを冗長表示します。 

-vpara

ソースコード

 

プリプロセッサのシンボルを定義します。 

-Dname[=val]

 

プリプロセッサのシンボルの定義を取り消します。 

-Uname

 

拡張 (132 文字) ソース行を受け入れます。 

-e

 

.F.F90、および .F95 のファイルにプリプロセッサを適用するが、コンパイルは行いません。

-F

 

固定書式の Fortran 95 ソースを受け付けます。 

-fixed

 

すべてのソースファイルを fpp プリプロセッサで先行処理します。

-fpp

 

自由形式の Fortran 95 ソースを受け付けます。 

-free

 

ファイル検索パスにディレクトリを追加します。 

-Ipath

 

モジュール検索パスにディレクトリを追加します。 

-Mpath

 

大文字と小文字を区別します。 

-U

 

ホレリスを実際の引数の文字として扱います。 

-xhasc={yes|no}

 

使用するプリプロセッサ (cpp または fpp) を選択します。

-xpp[={fpp|cpp}]

 

再帰的な副プログラム呼び出しを許可します。 

-xrecursive

ターゲットプラットフォーム

 

32 または 64 ビットのメモリーモデルを指定します。 

-m32 | —m64

 

オプティマイザにターゲットのプラットフォームを指定します。 

-xarch=a

 

オプティマイザにターゲットのキャッシュプロパティーを指定します。 

-xcache=a

 

オプティマイザにターゲットのプロセッサを指定します。 

-xchip=a

 

オプティマイザにターゲットのプラットフォームを指定します。 

-xtarget=a

3.3.1 頻繁に利用するオプション

コンパイラには、オプションのコマンド行パラメータによって選択できる機能が数多くあります。次の表に、頻繁に利用するオプションをまとめてあります。

表 3–4 頻繁に利用するオプション

処理 

オプション 

デバッグ - 大域的にプログラムを検査し、ルーチン間での引数、共通ブロックなどの整合性を調べます。 

-Xlist

デバッグ - dbx およびデバッグ機能を使用するための追加のシンボルテーブル情報を生成します。

-g

パフォーマンス - 実行速度の速い実行可能ファイルを作成します。 

-O[n]

パフォーマンス - 事前に定義されている一連のオプションを使用して、ネイティブプラットフォームのコンパイルと実行時間を改善します。 

-fast

動的 (-Bdynamic) または静的 (-Bstatic) ライブラリとリンクします。

-Bx

コンパイルのみ - リンクを行わず、ソースファイルごとに .o ファイルを作成します。

-c

出力ファイル - 実行可能な出力ファイルの名前を a.out ではなく nm に指定します。

-o nm

ソースコード - 固定形式 Fortran ソースコードをコンパイルします。 

-fixed

3.3.2 マクロフラグ

マクロフラグによっては、別のフラグの組み合わせに展開されるマクロもあります。これらのマクロフラグは、ある機能を選択するために、通常一緒に表示されるオプションを簡単に指定できるように提供されるものです。

表 3–5 マクロオプションフラグ

オプションフラグ 

展開 

-dalign

-xmemalign=8s -aligncommon=16

-f

-aligncommon=16

-fast

現在の展開内容の詳細は、—fast を参照してください。

-fnonstd

-fns -ftrap=common

-xia=widestneed

-xinterval=widestneed -ftrap=%none -fns=no -fsimple=0

-xia=strict

-xinterval=strict -ftrap=%none -fns=no -fsimple=0

-xtarget

-xarch=a -xcache=b -xchip=c

コマンド行でマクロフラグのあとに別のオプションを設定すると、このマクロの展開内容は上書きまたは追加されます。

3.3.3 下位互換のための旧オプション

コンパイラの初期リリース、および Fortran の一部旧機能との下位互換のためのオプションを示します。

表 3–6 下位互換性オプション

作用 

オプション 

定数の引数への代入を可能にします。 

-copyargs

呼び出し引数リストにおいてホレリス定数を文字または型なしとして扱います。 

-xhasc[={yes|no}]

FORTRAN 77 拡張子および規則をサポートします。 

-f77

非標準の算術演算 - 非標準の算術演算を使用可能にします。 

-fnonstd

ホストシステムに合わせて最適化を行います。 

-native

DO ループ - 少なくとも 1 回は DO ループを実行します。

-onetrip

従来の別名を付ける状況を許可します。 

-xalias=keywords

移植性のある Fortran 95 プログラムを作成する際には、これらのオプションフラグは使用しないでください。

3.3.4 旧オプションフラグ

次のオプションは廃止されています。 使用しないでください。将来のコンパイラでは、これらのオプションは削除される予定です。

表 3–7 旧 f95 オプション

オプションフラグ 

同等なオプションフラグ 

-a

-xprofile=tcov

-cg89

-xtarget=ss2

-cg92

-xtarget=ss1000

-explicitpar

OpenMP 並列化を使用してください。Sun/Cray 並列化は非推奨です。 

-mp

OpenMP 並列化を使用してください。Sun/Cray 並列化は非推奨です。 

-native

-xtarget=native 

-noqueue

ライセンスのキューイング。現在は必要ありません。 

-p

プロファイリング。-pg またはパフォーマンスアナライザを使用してください。

-pic

-xcode=pic13

-PIC

-xcode=pic32

-sb

現在は必要ありません。 

-sbfast

現在は必要ありません。 

-silent

現在は必要ありません。