8

私は LLVM パスを書いていllvm::CloneFunctionます。これらの関数もモジュールに挿入したいと思います。どうやってやるの?

4

3 に答える 3

8
  • Function::Createまたは他の方法で新しい関数を作成します。AFunctionのコンストラクターは、新しい関数を挿入するモジュールを受け入れます。
  • CloneFunctionIntoを使用して関数をその新しい関数に複製するか、必要な BB を単にコピーします。
于 2013-02-04T13:31:12.617 に答える
-1

CloneFunction を使用して、後でモジュールに挿入することができます

  Function* duplicateFunction = CloneFunction(F, VMap,
                                              /*ModuleLevelChanges=*/false);
  F->getParent()->getFunctionList().push_back(duplicateFunction);

llvm ソースの PartialInlining.cpp から盗んだ例。

于 2014-08-05T06:26:59.847 に答える