如果我有一组基本的块和边缘,则需要为它们创建一个具有新入口和终点的新功能。
我能直接在LLVM创建这个,就像createFunction(F)
那么F.insert(bb, edges)
该BB是一个基本块和边缘是新功能,新的边缘。
谢谢
您可以使用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);
Run Code Online (Sandbox Code Playgroud)