[all-commits] [llvm/llvm-project] 7cea0c: [libomptarget] Revert all improvements to support
Jon Chesterfield via All-commits
all-commits at lists.llvm.org
Wed Nov 6 07:44:26 PST 2019
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 7cea0cea77d15b70d54083ec7c17ae5d49b3f53f
https://github.com/llvm/llvm-project/commit/7cea0cea77d15b70d54083ec7c17ae5d49b3f53f
Author: Jon Chesterfield <jonathanchesterfield at gmail.com>
Date: 2019-11-06 (Wed, 06 Nov 2019)
Changed paths:
M openmp/libomptarget/deviceRTLs/nvptx/CMakeLists.txt
M openmp/libomptarget/deviceRTLs/nvptx/src/data_sharing.cu
M openmp/libomptarget/deviceRTLs/nvptx/src/debug.h
M openmp/libomptarget/deviceRTLs/nvptx/src/libcall.cu
M openmp/libomptarget/deviceRTLs/nvptx/src/omptarget-nvptx.h
R openmp/libomptarget/deviceRTLs/nvptx/src/support.cu
M openmp/libomptarget/deviceRTLs/nvptx/src/support.h
A openmp/libomptarget/deviceRTLs/nvptx/src/supporti.h
M openmp/libomptarget/deviceRTLs/nvptx/src/target_impl.h
R openmp/libomptarget/deviceRTLs/nvptx/unity.cu
Log Message:
-----------
[libomptarget] Revert all improvements to support
Summary:
[libomptarget] Revert all improvements to support
The change to unity build for nvcc has broken the build for some developers.
This patch reverts to a known-working state.
There has been some confusion over exactly how the build broke. I think we
have reached a common understanding that the disappearing symbols are from
the bitcode library built by clang. The static archive built by nvcc may show the
same problem. Some of the confusion arose from building the deviceRTL twice
and using one or the other library based on various environmental factors.
I'm pretty sure the problem is clang expanding `__forceinline__` into both `__inline__`
and `attribute(("always_inline"))`. The `__inline__` attribute resolves to linkonce_odr
which is not safe for exporting symbols from translation units.
"always_inline" is the desired semantic for small functions defined in one translation
unit that are intended to be inlined at link time. "inline" is not.
This therefore reintroduces the dependency hazard of supporti.h and some code
duplication, and blocks progress separating deviceRTL into reusable components.
See also D69857, D69859 for attempts at a fix instead of a revert.
Reviewers: ABataev, jdoerfert, grokos, ikitayama, tianshilei1992
Reviewed By: ABataev
Subscribers: mgorny, jfb, openmp-commits
Tags: #openmp
Differential Revision: https://reviews.llvm.org/D69885
More information about the All-commits
mailing list