Gcc OpenMp到Pthreads IR文件
了解openmp指令的pthread调用的gcc命令行语句有哪些?我知道在汇编、gimple、rtl和树中生成IR文件的-fdump命令行语句。但是我无法为openmp指令获取任何pthread转储 GCC不会直接将OpenMP pragmas转换为Pthreads代码。相反,它将每个OpenMP构造转换为对GNU OpenMP运行时库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 <
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
是包含并行区域主体的函数。在函数本身中(为简洁起见,此处省略)
的工作共享构造是通过使用一些简单的数学计算来实现的,这些计算确定了相应线程的迭代范围