[解決済み] clangをllvmのIRにコンパイルさせる方法
2022-04-23 10:37:33
質問
clangに私のC/C++コードをバイナリ実行ファイルではなく、LLVMビットコードにコンパイルして欲しいのです。どうしたらそれを実現できますか?
また、LLVMのビットコードがあったとして、それをさらにバイナリ実行ファイルにコンパイルするにはどうしたらいいですか?
LLVMのビットコードに独自のコードを追加して、バイナリ実行ファイルにコンパイルしたいのですが。
どのように解決するのですか?
あるC/C++ファイルがある場合
foo.c
:
> clang -S -emit-llvm foo.c
生成する
foo.ll
LLVMのIRファイルです。
は
-emit-llvm
オプションは、ドライバではなく直接コンパイラフロントエンドに渡すこともできます。
-cc1
:
> clang -cc1 foo.c -emit-llvm
生成する
foo.ll
をIRで表示します。
-cc1
のようなクールなオプションが追加されます。
-ast-print
. チェックアウト
-cc1 --help
をご覧ください。
LLVM IRをさらにアセンブリにコンパイルするには
llc
ツールを使用します。
> llc foo.ll
生成する
foo.s
をアセンブリで作成します (デフォルトは実行したマシンのアーキテクチャ)。
llc
はLLVMツールの1つである
以下はそのドキュメントです。
.
関連
-
[解決済み] Xcode - 警告。C99 では関数の暗黙の宣言は無効です。
-
[解決済み] なぜmemsetではなくbzeroを使用するのですか?
-
[解決済み] SQLiteのINSERT/per-secondのパフォーマンスを向上させる
-
[解決済み] 1ビットのセット、クリア、トグルはどのように行うのですか?
-
[解決済み] C言語では「?」演算子は何をするのですか?
-
[解決済み] 演算子 *, /, +, -, % を使わずに 3 で割る。
-
[解決済み] なぜこのプログラムは3つのC++コンパイラで誤って拒否されるのですか?
-
[解決済み】高放射能環境下で使用するアプリケーションのコンパイルについて
-
[解決済み】CMakeでGCCとClang/LLVMの切り替えを行う。
-
[解決済み] OS XにおけるLLVMとclangの比較
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[C] レポートエラー 代入の左オペランドとしてlvalueが必要
-
[解決済み] Code::Blocks アプリケーションをコンパイルできない
-
[解決済み] stdinとSTDIN_FILENOの違いは何ですか?
-
[解決済み] C言語の書式指定子 %ul と %lu の違いは何ですか?
-
[解決済み] C言語のコードで「:-!」とは何ですか?
-
[解決済み] C言語における「static」の意味とは?
-
[解決済み] C言語でのブーリアン値の使用
-
[解決済み] while ( !feof (file) ) 」は、なぜいつも間違っているのですか?
-
[解決済み] C言語でファイルが存在するかどうかを確認する最も良い方法は何ですか?
-
[解決済み] LD_PRELOADのトリックとは何ですか?