11

opt ツールで動作する ModulePass がありますが、コマンド ラインで clang を使用できるようにする方法がわかりません。パスを使用するための現在のワークフローは次のとおりです。

  1. clang -c -emit-llvm [c-ソース コード ファイル]
  2. llvm-link [llvm ビットコード ファイル]
  3. opt -load [パス名].so -[パス名] [リンクされたllvmファイル]
  4. llc [結果のビットコード ファイル]
  5. gcc [結果のアセンブラ ファイル] -o [ターゲット]

パスを clang コマンド ラインに統合して、コンパイルするたびにビルド システム全体を再作成することなく、既存のソフトウェア (たとえば、C++ 標準ライブラリ) のビルドの一部として呼び出すことができるようにしたいと考えています。これを行う方法についてのヒントを見てきましたが、ピースをまとめて作業セットアップに入れることができませんでした.

Clang を使用して LLVM パスを自動的に実行する は、私が望むものを正確に説明していますが、このメソッドは LLVM 3.4 で廃止されたようです (PassManagerBuilder は従来の名前空間に移動されました)。

LLVM - クランを使用してオウンパスを自動的に実行すると、基本的な問題に対処しているように見えますが、クランを変更せずにこれを実行できることを望んでいました (そこで提案されているようです)。

LLVM 3.4 を使用して clang から新しいパスを利用できるようにする最善の方法は何ですか?

4

1 に答える 1