Gcc OpenMp到Pthreads IR文件

Gcc OpenMp到Pthreads IR文件,gcc,pthreads,openmp,Gcc,Pthreads,Openmp,了解openmp指令的pthread调用的gcc命令行语句有哪些?我知道在汇编、gimple、rtl和树中生成IR文件的-fdump命令行语句。但是我无法为openmp指令获取任何pthread转储 GCC不会直接将OpenMP pragmas转换为Pthreads代码。相反,它将每个OpenMP构造转换为对GNU OpenMP运行时库libgomp的一组调用。您可以通过使用-fdump tree all进行编译来获得中间表示。查找扩展名为.ompexp的文件 例如: #include <

了解openmp指令的pthread调用的gcc命令行语句有哪些?我知道在汇编、gimple、rtl和树中生成IR文件的-fdump命令行语句。但是我无法为openmp指令获取任何pthread转储

GCC不会直接将OpenMP pragmas转换为Pthreads代码。相反,它将每个OpenMP构造转换为对GNU OpenMP运行时库
libgomp
的一组调用。您可以通过使用
-fdump tree all
进行编译来获得中间表示。查找扩展名为
.ompexp
的文件

例如:

#include <stdio.h>

int main() {
    int i;
    #pragma omp parallel for
    for(i=0; i<100; i++) {
        printf("asdf\n");
    }
}

GCC通过代码大纲实现并行区域,在这种情况下,
main.omp_fn.0
是包含并行区域主体的函数。在函数本身中(为简洁起见,此处省略)的
工作共享构造是通过使用一些简单的数学计算来实现的,这些计算确定了相应线程的迭代范围。

GCC不会直接将OpenMP杂注转换为Pthreads代码。相反,它将每个OpenMP构造转换为对GNU OpenMP运行时库
libgomp
的一组调用。您可以通过使用
-fdump tree all
进行编译来获得中间表示。查找扩展名为
.ompexp
的文件

例如:

#include <stdio.h>

int main() {
    int i;
    #pragma omp parallel for
    for(i=0; i<100; i++) {
        printf("asdf\n");
    }
}

GCC通过代码大纲实现并行区域,在这种情况下,
main.omp_fn.0
是包含并行区域主体的函数。在函数本身中(为简洁起见,此处省略)
工作共享构造是通过使用一些简单的数学计算来实现的,这些计算确定了相应线程的迭代范围。

GCC不会直接将OpenMP杂注转换为Pthreads代码。相反,它将每个OpenMP构造转换为对GNU OpenMP运行时库
libgomp
的一组调用。您可以通过使用
-fdump tree all
进行编译来获得中间表示。查找扩展名为
.ompexp
的文件

例如:

#include <stdio.h>

int main() {
    int i;
    #pragma omp parallel for
    for(i=0; i<100; i++) {
        printf("asdf\n");
    }
}

GCC通过代码大纲实现并行区域,在这种情况下,
main.omp_fn.0
是包含并行区域主体的函数。在函数本身中(为简洁起见,此处省略)
工作共享构造是通过使用一些简单的数学计算来实现的,这些计算确定了相应线程的迭代范围。

GCC不会直接将OpenMP杂注转换为Pthreads代码。相反,它将每个OpenMP构造转换为对GNU OpenMP运行时库
libgomp
的一组调用。您可以通过使用
-fdump tree all
进行编译来获得中间表示。查找扩展名为
.ompexp
的文件

例如:

#include <stdio.h>

int main() {
    int i;
    #pragma omp parallel for
    for(i=0; i<100; i++) {
        printf("asdf\n");
    }
}
GCC通过代码大纲实现并行区域,在这种情况下,
main.omp_fn.0
是包含并行区域主体的函数。在函数本身中(为简洁起见,此处省略)
工作共享构造是通过使用一些简单的数学计算来实现的,这些计算确定了相应线程的迭代范围