5

如果我有一组基本块和边,我需要为它们创建一个具有新入口和端点的新函数。

我可以直接在 LLVM 中创建它吗,就像createFunction(F) 那时F.insert(bb, edges) which bb 是基本块, edges 是新函数的新边。

谢谢

4

2 回答 2

5

您可以使用Function::Create. 例如,请参阅LLVM 教程中的这个片段:

Function *PrototypeAST::Codegen() {
  // Make the function type:  double(double,double) etc.
  std::vector<Type*> Doubles(Args.size(),
                             Type::getDoubleTy(getGlobalContext()));
  FunctionType *FT = FunctionType::get(Type::getDoubleTy(getGlobalContext()),
                                       Doubles, false);

  Function *F = Function::Create(FT, Function::ExternalLinkage, Name, TheModule);
于 2013-06-25T12:47:38.370 回答
0

函数创建: http: //llvm.org/docs/doxygen/html/classllvm_1_1Function.html#a162a63c89ac118c8ffef75b3a892efa0

如何使用llvm源码中的create函数:http: //llvm.org/docs/doxygen/html/CloneFunction_8cpp_source.html#l00162

于 2013-06-26T03:19:18.293 回答