1

我对编译器很陌生,目前开始铿锵。我想用clang解析openmp pragma行,我的问题是可能吗?事实上,我看到了很多关于支持 openmp 的演示文稿,但是我找不到任何关于如何解析的示例?如果你有或知道有用的例子,你能发给我吗?

非常感谢

4

2 回答 2

2

看看波莉。它支持 OpenMP 并且基于 llvm。Polly 生成带有 GOMP 库调用注释的 LLVM IR,并且很容易编写自己的 pass 来处理这些调用。

如果您真的需要前端的编译指示信息,则需要深入研究代码以获取编译指示的句柄。在任何情况下,您都不需要编写自己的解析器。

有关 Polly 如何处理 OpenMP pragma 的详细信息,请参阅本文档

于 2013-08-10T19:11:41.233 回答
0

我终于找到了。目前 Clang 只支持 omp 并行指令,而且几乎没有子句:)

为了使用它,我使用了这些参数:

clang -Xclang -ast-dump -Xpreprocessor -fopenmp yoursourcefile.c

我可以在 ast 中看到 omp 声明。

OMPParallelDirective 0xd09a09c <line:6:13, col:25>
-CapturedStmt 0xd09a088 <line:7:5, col:18>
于 2013-08-13T10:28:13.150 回答