我使用clang ++ 3.4将C ++ 11程序(test.cpp)编译成LLVM IR文件(test.ll)。该程序包含几个C ++ lambda函数,我想知道是否可以使用如下技术仅为lambda函数提取IR:
Module *mod = ParseIRFile("test.ll", *err, ctx);
for (Module::iterator f = mod->begin(); f != mod->end(); ++f) {
//is there some function like isLambdaFunction()?
if (f->isLambdaFunction()) {
cout << "Lambda Function" << endl;
}
}
答案 0 :(得分:4)
没有。 LLVM IR中没有lambda函数的概念。 Clang用方法AFAIK将lambda降低到结构。
你可以从Clang的AST获得,但不能从LLVM IR获得。