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