[PATCH] D152054: [OpenMP] Codegen support for thread_limit on target directive
Kazushi Marukawa via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Mon Sep 11 06:53:47 PDT 2023
kaz7 added a comment.
I figure out the reason of strange behavior I mentioned last night. However, I'm still not sure what is the good way to solve this problem. Can someone check the behavior with `-O2` option please? Thanks!
================
Comment at: openmp/runtime/test/target/target_thread_limit.cpp:73
+ printf("\nsecond target: thread_limit = %d", omp_get_thread_limit());
+// OMP51: second target: thread_limit = 3
+#pragma omp parallel
----------------
Last night, I cannot use inline comment, but now I can. So, I'm writing down my comments here.
The problem I mentioned last night was caused by optimization. This works fine with optimization level by default, but this doesn't work with `-O2` even on x86_64. I'm using `-O2` for tests, so I come across this problem. I'll write command lines to reproduce my problem below. As you see, there is a warning message at `-O2`. So, this behavior may be expected, though. In addition, I'm using f8efa65 to produce following results.
```
$ cd build
$ ninja
...
$ ./bin/clang++ -fopenmp -I runtimes/runtimes-x86_64-unknown-linux-gnu-bins/openmp/runtime/src -I ../llvm-project/openmp/runtime/test -L runtimes/runtimes-x86_64-unknown-linux-gnu-bins/openmp/runtime/src -fno-omit-frame-pointer -I ../llvm-project/openmp/runtime/test/ompt -std=c++17 ../llvm-project/openmp/runtime/test/target/target_thread_limit.cpp -o ok -lm -latomic -fopenmp-version=51
$ LD_LIBRARY_PATH=runtimes/runtimes-x86_64-unknown-linux-gnu-bins/openmp/runtime/src ./ok | grep "second target: thread_limit"
second target: thread_limit = 3
$ ./bin/clang++ -fopenmp -I runtimes/runtimes-x86_64-unknown-linux-gnu-bins/openmp/runtime/src -I ../llvm-project/openmp/runtime/test -L runtimes/runtimes-x86_64-unknown-linux-gnu-bins/openmp/runtime/src -fno-omit-frame-pointer -I ../llvm-project/openmp/runtime/test/ompt -std=c++17 ../llvm-project/openmp/runtime/test/target/target_thread_limit.cpp -o bad -lm -latomic -fopenmp-version=51 -O2
warning: loop not vectorized: the optimizer was unable to perform the requested transformation; the transformation might be disabled or specified as part of an unsupported transformation ordering [-Wpass-failed=transform-warning]
1 warning generated.
$ LD_LIBRARY_PATH=runtimes/runtimes-x86_64-unknown-linux-gnu-bins/openmp/runtime/src ./bad | grep "second target: thread_limit"
second target: thread_limit = 2147483647
```
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D152054/new/
https://reviews.llvm.org/D152054
More information about the cfe-commits
mailing list