-
Notifications
You must be signed in to change notification settings - Fork 13k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Bug in Libomptarget when state initialization comes from outside the translation unit #54208
Comments
@llvm/issue-subscribers-openmp |
/cherry-pick e2dcc22 |
For backport. |
/branch llvmbot/llvm-project/issue54208 |
Libomptarget uses some shared variables to track certain internal stated in the runtime. This causes problems when we have code that contains no OpenMP kernels. These variables are normally initialized upon kernel entry, but if there are no kernels we will see no initialization. Currently we load the runtime into each source file when not running in LTO mode, so these variables will be erroneously considered undefined or dead and removed, causing miscompiles. This patch temporarily works around the most obvious case, but others still exhibit this problem. We will need to fix this more soundly later. Fixes llvm#54208. Reviewed By: jdoerfert Differential Revision: https://reviews.llvm.org/D121007 (cherry picked from commit e2dcc22)
/pull-request llvmbot#119 |
@jdoerfert What do you think about backporting this? e2dcc22 |
I'm torn. I initially thought we should but I'm not so sure anymore. I fear the performance impact on a lot of codes is not worth it for the few this might help (to actually run). For the next version we'll have to have a proper solution. Let's keep 14 as is. |
Libomptarget uses some shared variables to track certain internal stated in the runtime. This causes problems when we have code that contains no OpenMP kernels. These variables are normally initialized upon kernel entry, but if there are no kernels we will see no initialization. Currently we load the runtime into each source file when not running in LTO mode, so these variables will be erroneously considered undefined or dead and removed, causing miscompiles.
The text was updated successfully, but these errors were encountered: