これは、Ubuntu Online、Fedora Online、Windowsオンラインエミュレーター、MACOSオンラインエミュレーターなどの複数の無料オンラインワークステーションの3.8つを使用してOnWorks無料ホスティングプロバイダーで実行できるコマンドlli-XNUMXです。
プログラム:
NAME
lli-LLVMビットコードからプログラムを直接実行します
SYNOPSIS
LLI [オプション] [ファイル名] [プログラム 引数]
DESCRIPTION
LLI LLVMビットコード形式でプログラムを直接実行します。 LLVMビットコードのプログラムが必要です
フォーマットし、ジャストインタイムコンパイラまたはインタプリタを使用して実行します。
LLI is エミュレーター。 異なるアーキテクチャのIRを実行することはなく、実行できるのは
ホストアーキテクチャの解釈(またはJITコンパイル)。
JITコンパイラは、他のツールと同じ引数を取ります。 LLC、しかし彼らはしません
通訳のために必ず働きます。
If ファイル名 指定されていない場合 LLI プログラムのLLVMビットコードをから読み取ります
標準入力。
オプション 引数 コマンドラインで指定されたものは、引数としてプログラムに渡されます。
全般的な OPTIONS
-fake-argv0 =executable
上書きする argv [0] 実行中のプログラムに渡される値。
-force-interpreter = {false、true}
trueに設定すると、ジャストインタイムコンパイラが使用可能な場合でもインタプリタを使用します
このアーキテクチャのために。 デフォルトはfalseです。
-助けて コマンドラインオプションの概要を出力します。
-load = pluginfilename
目的 LLI 名前の付いたプラグイン(共有オブジェクト)をロードする プラグインファイル名 そしてそれを
最適化。
-統計 コード生成パスから統計を出力します。 これは、
現在、ジャストインタイムコンパイラ。
-時を経て
各コード生成パスに必要な時間を記録し、に印刷します
標準エラー。
-バージョン
のバージョンを印刷します LLI 何もせずに終了します。
TARGET OPTIONS
-mtriple = target トリプル
入力ビットコードファイルで指定されたターゲットトリプルを指定されたものでオーバーライドします
ストリング。 そうでないアーキテクチャを選択すると、クラッシュする可能性があります
現在のシステムと互換性があります。
-march = arch
ターゲットをオーバーライドして、アセンブリを生成するアーキテクチャを指定します
ビットコードファイルにエンコードされます。 の出力を参照してください LLC -助けて 有効なリストについては
アーキテクチャ。 デフォルトでは、これはターゲットトリプルから推測されるか、自動検出されます
現在のアーキテクチャに。
-mcpu = cpuname
コードを生成する現在のアーキテクチャの特定のチップを指定します。 に
デフォルトでは、これはターゲットトリプルから推測され、現在のトリプルに自動検出されます
建築。 使用可能なCPUのリストについては、以下を使用してください。 llvm-as < / dev / null | LLC
-march = xyz -mcpu = help
-mattr = a1、+ a2、-a3、..。
SIMDかどうかなど、ターゲットの特定の属性をオーバーライドまたは制御します
操作が有効かどうか。 デフォルトの属性セットは、現在の属性によって設定されます
CPU。 使用可能な属性のリストについては、以下を使用してください。 llvm-as < / dev / null | LLC -march = xyz
-mattr = help
フローティング POINT OPTIONS
-無効-超過-fp-精度
浮動小数点の精度を上げる可能性のある最適化を無効にします。
-enable-no-infs-fp-math を有効にする
Inf値を想定しない最適化を有効にします。
-no-nans-fp-math を有効にする
NAN値を想定しない最適化を有効にします。
-enable-unsafe-fp-math を有効にする
目的 LLI 浮動小数点の精度を低下させる可能性のある最適化を有効にします。
-ソフトフロート
目的 LLI 同等の代わりにソフトウェア浮動小数点ライブラリ呼び出しを生成する
ハードウェア命令。
CODE GENERATION OPTIONS
-code-model = model
次からコードモデルを選択します。
デフォルト:ターゲットのデフォルトコードモデル
small:小さなコードモデル
カーネル:カーネルコードモデル
ミディアム:ミディアムコードモデル
ラージ:ラージコードモデル
-disable-post-RA-スケジューラー
レジスタ割り当て後のスケジューリングを無効にします。
-無効-流出-融合
命令へのスピルコードの融合を無効にします。
-jit-enable-ええ
例外処理は、ジャストインタイムコンパイラで有効にする必要があります。
-ライブ間隔に参加
合体コピー(デフォルト= true)。
-nozero-in-bss で初期化
ゼロで初期化されたシンボルをBSSセクションに配置しないでください。
-pre-RA-sched = scheduler
使用可能な命令スケジューラ(レジスタ割り当て前):
=デフォルト:ターゲットに最適なスケジューラ
= none:スケジューリングなし:幅優先シーケンス
= simple:シンプルなXNUMXパススケジューリング:クリティカルパスを最小化し、プロセッサ使用率を最大化します
= simple-noitin:単純なXNUMXパススケジューリング:ジェネリックレイテンシを使用することを除いて、単純と同じ
= list-burr:ボトムアップレジスタ削減リストのスケジューリング
= list-tdrr:トップダウンレジスタ削減リストのスケジューリング
= list-td:トップダウンリストスケジューラ-print-machineinstrs-生成されたマシンコードを出力します
-regalloc = allocator
使用するアロケータを登録します(デフォルト= linearscan)
= bigblock:ビッグブロックレジスタアロケータ
= linearscan:線形スキャンレジスタアロケータ= local-ローカルレジスタアロケータ
= simple:単純なレジスタアロケータ
-relocation-model = model
次から再配置モデルを選択します。
= default:ターゲットのデフォルトの再配置モデル
= static:再配置不可能なコード= pic-完全に再配置可能で、位置に依存しないコード
= dynamic-no-pic:再配置可能な外部参照、再配置不可能なコード
-スピラー
使用するスピラー(デフォルト=ローカル)
= simple:単純なスピラー
=ローカル:ローカルスピラー
-x86-asm-syntax = Syntax
X86バックエンドから出力するコードのスタイルを選択します。
= att:AT&Tスタイルのアセンブリを発行します
= intel:Intelスタイルのアセンブリを発行します
EXIT ステータス
If LLI プログラムのロードに失敗すると、終了コード1で終了します。それ以外の場合は、
実行するプログラムの終了コードを返します。
onworks.netサービスを使用してlli-3.8をオンラインで使用する