如果我有一组基本的块和边缘,我需要为它们创建一个带有新入口和终点的新函数。
我可以直接在LLVM中创建它,就像createFunction(F)
然后F.insert(bb, edges)
一样
其中bb是一个基本块,edge是新函数的新边。
由于
答案 0 :(得分:3)
您可以使用Function::Create
创建新功能。请参阅此代码段from the LLVM tutorial,例如:
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);
答案 1 :(得分:0)