プログラミング言語SML#解説 4.1.0版
28 SML#コンパイラの起動

28.3 コンパイルオプション

以下のオプションはSML#コンパイラによるファイル検索 およびコード生成を制御する. このカテゴリに属するオプションは 対話環境やリンクモードにも作用する.

-Idir

.smiファイルの検索パスにディレクトリdirを追加する. 複数の-Iオプションがコマンドラインに指定されている場合, 指定された順番で各ディレクトリを検索する. なお,このオプションは,リンク時の.smiファイルの検索にも 使用される.

-nostdpath

.smiファイルの検索パスを-Iで指定したディレクトリのみ に限定する.

-O, -O0, -O1, -O2, -O3, -Os, -Oz

最適化レベルを指定する. -O0は全ての最適化を無効にする. -O1から-O3は数字が大きいほどより高度な最適化を有効にする. -O-O2の別名である. -Osおよび-Ozはコードサイズを小さくする最適化を有効にする. これらのオプションがコマンドラインに複数指定された場合は, 最後のひとつのみが有効となる.

--target=target, -mcmodel model, -march arch, -mcpu cpu, -mattr attrs

LLVMのコード生成器に対して指定するターゲット,コードモデル, アーキテクチャ,CPU,およびコード生成属性を指定する. modelsmall, medium, large, kernelの いずれかである. attrsには属性のリストをコンマ区切りで指定する. target, arch, cpu, attrsに対して有効な 指定はLLVMマニュアルあるいはLLVM付属のllcコマンドのヘルプを参照せよ.

-fpic, -fPIC, -fno-pic, -mdynamic-no-pic

コードの再配置モデルを指定する. -fpic-fPICの別名である. -fPICは再配置可能なコードを生成する. -fno-picは再配置しない(non-relocatableな)コードを生成する. -mdynamic-no-picは再配置可能な外部参照を含む再配置しない コードを生成する. これらのオプションが指定されていないときは,システム依存のデフォル トの再配置モデルが選択される.

-Xllc arg, -Xopt arg

コード生成の際に実行されるLLVMのllcおよびoptコマンドに 渡す追加の引数を指定する. 複数の-Xllc-Xoptがコマンドラインに指定された 場合,全ての追加引数が指定された順にコマンドに渡される.

-emit-llvm

コンパイル結果をファイルに書き出すとき, ネイティブコードの代わりに LLVM IR を出力する. -emit-llvm-Sと共に指定されているとき, アセンブリコードの代わりにテキスト形式の LLVM IR コードを出力する. デフォルトの出力ファイル名の拡張子は .sから.llに変わる. -cと共に指定されているとき, オブジェクトファイルの代わりに LLVM bitcode ファイルを出力する. デフォルトの出力ファイル名の拡張子は .oから.bcに変わる.