当我研究LLVM OpenMP运行时库文档时,我发现有一个关于工作共享的示例:
extern float foo( void );
int main () {
int i;
float r = 0.0;
#pragma omp parallel for schedule(dynamic) reduction(+:r)
for ( i = 0; i < 10; i ++ ) {
r += foo();
}
}
Run Code Online (Sandbox Code Playgroud)
然后它显示转换后的代码如下:
extern float foo( void );
int main () {
static int zero = 0;
auto int gtid;
auto float r = 0.0;
__kmpc_begin( & loc3, 0 );
// The gtid is not actually required in this example …Run Code Online (Sandbox Code Playgroud)