LLVM OpenMP支持

问题描述:

我想知道LLVM中是否有任何函数/方法在LLVM IR中添加Open-MP结构。 llvm-3.0是否仍支持OpenMP指令?LLVM OpenMP支持

OpenMP是一种高级语言扩展。所以,它是C/C++/FORTRAN前端,它应该将杂注降低到必要的运行时调用和代码更改。

我看不出OpenMP如何“添加”到LLVM IR。如果您需要支持OpenMP pragmas并发出LLVM IR的C/C++/FORTRAN编译器 - 请尝试dragonegg。

+1

在最近的ml线程[(LLVMdev)OpenMP支持LLVM/jan2012](http://lists.cs.uiuc.edu/pipermail/llvmdev/2012-January/046823.html)中,提出了使用内在函数。 “对自动并行感兴趣的人是 可能更感兴趣将LLVM-IR环路转换为带有OpenMP扩展的LLVM-IR 。” – osgx 2012-02-08 13:49:05

+0

@osgx:如果我们正在讨论对omp运行时调用的库独立表示,那么是的,特殊内在函数是一种自然的方式。理论上Autopar代码可能会产生omp-aware代码。所以,很可能最初的问题需要澄清如何“LLVM仍然可以支持OpenMP指令”:) – 2012-02-08 14:50:58

+0

对。基本上,发生openmp的事情是一系列针对各种openmp指令的库调用(以及一些cfg更改),openmp在IR中没有什么特殊的需要。 如果您希望能够注意到OpenMP指令并在更高级别重构循环变换,那么您可能需要一些IR支持,但我并不认为它是需要的。 – echristo 2012-02-09 19:12:52