我对编译器这么新,现在开始铿锵有力。我想用clang解析openmp pragma行,我的问题是可能吗?事实上,我看到很多关于支持openmp的演示,但是我找不到任何关于如何解析的例子?如果你有或知道有用的例子,你能寄给我吗?
非常感谢
答案 0 :(得分:2)
看看Polly。它支持OpenMP并基于llvm。 Polly生成使用GOMP库调用注释的LLVM IR,并且很容易编写自己的传递来获取这些调用的句柄。
如果你真的需要前端的pragma信息,你需要深入研究代码来处理pragma。在任何情况下,您都不需要编写自己的解析器。
有关Polly如何处理OpenMP pragma的详细信息,请参阅此document。
答案 1 :(得分:0)
我终于找到了。目前Clang只支持omp parallel指令,而且几乎没有子句:)
为了使用它,我使用了以下参数:
clang -Xclang -ast-dump -Xpreprocessor -fopenmp yoursourcefile.c
我可以在ast中看到omp声明。
OMPParallelDirective 0xd09a09c <line:6:13, col:25>
-CapturedStmt 0xd09a088 <line:7:5, col:18>