1

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

1 回答 1

4

不,LLVM IR 中没有 lambda 函数的概念。Clang 将 lambda 降低为具有方法的结构,AFAIK。

您可以从 Clang 的 AST 中获得此信息,但不能从 LLVM IR 获得。

于 2014-09-05T20:11:14.200 回答