28.3 コンパイルオプション
以下のオプションはSML#コンパイラによるファイル検索 およびコード生成を制御する. このカテゴリに属するオプションは 対話環境やリンクモードにも作用する.
- -I
-
.smiファイルの検索パスにディレクトリを追加する. 複数の-Iオプションがコマンドラインに指定されている場合, 指定された順番で各ディレクトリを検索する. なお,このオプションは,リンク時の.smiファイルの検索にも 使用される.
- -nostdpath
-
.smiファイルの検索パスを-Iで指定したディレクトリのみ に限定する.
- -O, -O0, -O1, -O2, -O3, -Os, -Oz
-
最適化レベルを指定する. -O0は全ての最適化を無効にする. -O1から-O3は数字が大きいほどより高度な最適化を有効にする. -Oは-O2の別名である. -Osおよび-Ozはコードサイズを小さくする最適化を有効にする. これらのオプションがコマンドラインに複数指定された場合は, 最後のひとつのみが有効となる.
- --target=, -mcmodel , -march , -mcpu , -mattr
-
LLVMのコード生成器に対して指定するターゲット,コードモデル, アーキテクチャ,CPU,およびコード生成属性を指定する. はsmall, medium, large, kernelの いずれかである. には属性のリストをコンマ区切りで指定する. , , , に対して有効な 指定はLLVMマニュアルあるいはLLVM付属のllcコマンドのヘルプを参照せよ.
- -fpic, -fPIC, -fno-pic, -mdynamic-no-pic
-
コードの再配置モデルを指定する. -fpicは-fPICの別名である. -fPICは再配置可能なコードを生成する. -fno-picは再配置しない(non-relocatableな)コードを生成する. -mdynamic-no-picは再配置可能な外部参照を含む再配置しない コードを生成する. これらのオプションが指定されていないときは,システム依存のデフォル トの再配置モデルが選択される.
- -Xllc , -Xopt
-
コード生成の際に実行されるLLVMのllcおよびoptコマンドに 渡す追加の引数を指定する. 複数の-Xllcや-Xoptがコマンドラインに指定された 場合,全ての追加引数が指定された順にコマンドに渡される.
- -emit-llvm
-
コンパイル結果をファイルに書き出すとき, ネイティブコードの代わりに LLVM IR を出力する. -emit-llvmが-Sと共に指定されているとき, アセンブリコードの代わりにテキスト形式の LLVM IR コードを出力する. デフォルトの出力ファイル名の拡張子は .sから.llに変わる. -cと共に指定されているとき, オブジェクトファイルの代わりに LLVM bitcode ファイルを出力する. デフォルトの出力ファイル名の拡張子は .oから.bcに変わる.