Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我对编译器很陌生,目前开始铿锵。我想用clang解析openmp pragma行,我的问题是可能吗?事实上,我看到了很多关于支持 openmp 的演示文稿,但是我找不到任何关于如何解析的示例?如果你有或知道有用的例子,你能发给我吗?
非常感谢
看看波莉。它支持 OpenMP 并且基于 llvm。Polly 生成带有 GOMP 库调用注释的 LLVM IR,并且很容易编写自己的 pass 来处理这些调用。
如果您真的需要前端的编译指示信息,则需要深入研究代码以获取编译指示的句柄。在任何情况下,您都不需要编写自己的解析器。
有关 Polly 如何处理 OpenMP pragma 的详细信息,请参阅本文档。
我终于找到了。目前 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>