📄 pr32468-1.c
字号:
/* PR libgomp/32468 *//* { dg-do compile } *//* { dg-options "-O2 -fopenmp -fdump-tree-ompexp" } */extern int printf (const char *, ...);extern int omp_get_thread_num (void), omp_get_num_threads (void);extern int bar (void);extern int baz (const char *, ...);voidf1 (void){#pragma omp parallel { baz ("%d/%d\n", omp_get_thread_num (), omp_get_num_threads ()); #pragma omp sections { #pragma omp section printf ("section1 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ()); #pragma omp section printf ("section2 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ()); } }}voidf2 (void){#pragma omp parallel { #pragma omp sections { #pragma omp section printf ("section1 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ()); #pragma omp section printf ("section2 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ()); } baz ("%d/%d\n", omp_get_thread_num (), omp_get_num_threads ()); }}voidf3 (void){#pragma omp parallel { int bb = bar (); #pragma omp sections { #pragma omp section printf ("section1 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ()); #pragma omp section printf ("section2 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ()); } }}voidf4 (void){ int i;#pragma omp parallel { baz ("%d/%d\n", omp_get_thread_num (), omp_get_num_threads ()); #pragma omp for schedule (dynamic, 15) for (i = 0; i < 10000; i++) printf ("section1 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ()); }}voidf5 (void){ int i;#pragma omp parallel { #pragma omp for schedule (dynamic, 15) for (i = 0; i < 10000; i++) printf ("section1 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ()); baz ("%d/%d\n", omp_get_thread_num (), omp_get_num_threads ()); }}voidf6 (void){ int i;#pragma omp parallel { int bb = bar (); #pragma omp for schedule (runtime) for (i = 0; i < 10000; i++) printf ("section1 %d/%d\n", omp_get_thread_num (), omp_get_num_threads ()); }}/* There should not be a GOMP_parallel_{loop,sections}* call. *//* { dg-final { scan-tree-dump-times "GOMP_parallel_loop" 0 "ompexp"} } *//* { dg-final { scan-tree-dump-times "GOMP_parallel_sections" 0 "ompexp"} } *//* { dg-final { cleanup-tree-dump "ompexp" } } */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -