LLVM IR Lambda函数

时间:2014-09-05 18:15:32

标签: c++11 lambda llvm llvm-clang llvm-c++-api

我使用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;
    }
}

1 个答案:

答案 0 :(得分:4)

没有。 LLVM IR中没有lambda函数的概念。 Clang用方法AFAIK将lambda降低到结构。

你可以从Clang的AST获得,但不能从LLVM IR获得。