使用LLVM编译的omp程序中的omp_outlined

时间:2016-04-22 01:59:00

标签: llvm openmp llvm-clang

使用LLVM clang ++ 4.9.2编译带有OMP指令的cpp程序时,我看到隐藏的函数@ .omp_outlined。是在bitcode中生成的。我想知道这个隐藏的功能是什么,以及是否可以避免产生它。

1 个答案:

答案 0 :(得分:4)

不,你无法阻止在Clang中生成概述的代码。将并行区域代码概述为自己的函数是Clang和许多其他编译器(包括GCC,Intel和MSVC)实现OpenMP的方式。有关GCC如何实现它的更多详细信息,请参见herehere。 Clang或多或少采用相同的方法。

据我所知,唯一没有明确概述OpenMP并行区域的OpenMP编译器是来自PGI的编译器。它做了一些堆栈框架魔术,使多个线程能够执行部分功能代码。