2

这是此问题的后续问题。

我使用llvm::CloneFunctionIntodefined inllvm/Transforms/Utils/Cloning.h是为了在代码生成后使用从返回值的类型推断出的正确签名来创建一个新函数。这很好用,但速度很慢

我正在尝试通过某种方式对其进行优化,以将功能体从旧功能移动或转移到新功能,是否有实用程序?

我试图通过查看CloneFunctionInto 中的代码来破解一种进行传输的方法,但想看看是否存在现有函数

4

1 回答 1

5

无耻地从Arg Promotion 通行证中窃取(搜索 splice):

// Since we have now created the new function, splice the body of the old
// function right into the new function, leaving the old rotting hulk of the
// function empty.
NF->getBasicBlockList().splice(NF->begin(), F->getBasicBlockList());

NF您要克隆的新函数在哪里,并且F是您刚刚克隆的旧函数。

于 2013-09-11T21:12:08.747 回答