foreman a10cfef5e7 P4 to Git Change 1272070 by smekhano@stas-nova-hsa on 2016/05/23 14:39:45
SWDEV-85602 - switch to use of linkonce_odr for library and obsolete linkWithModule patches

	The linkonce_odr linkage is set to any non-local functions in the library during library build.

	Libraries are linked left to right and never back resolved. For that reason clp on the fly library
	is moved to the end of the library list. Otherwise by the time clp would like to use the scalar version
	of a builtin function for vector expansion this scalar function will not be available anymore.

	With the linkonce_odr linkage the linker includes any referenced function from a linked in module.
	That is true even for unused declarations. Therefor after every module my new code drops all unused
	declarations from the composite. If we do not do it a wrapper library such as builtins-hsail would
	reference all symbols from the wrapping library such as ocml and the wrapping library would be linked in
	almost as a whole. Dropping unused declarations solves it.

	Testing: smoke, pecheckin, conformance 2.0 with and w/o optimization
	Reviewed by Nikolay Haustov, Daniil Fukalov and Evgeny Mankov

Affected files ...

... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/linker.cpp#144 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/linker.hpp#17 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/linker/include/AMDResolveLinker.h#4 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/linker/lib/AMDResolveLinker.cpp#4 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/linker/tools/opencl-link/opencl-link.cpp#6 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/include/llvm/Linker/Linker.h#3 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Linker/LinkModules.cpp#51 edit
... //depot/stg/opencl/drivers/opencl/library/x86/common/src/amdrt/build/Makefile.amdrt#24 edit
... //depot/stg/opencl/drivers/opencl/opencldefs#169 edit
2016-05-23 14:45:13 -04:00
S
説明
説明が提供されていません
282 MiB
言語
C++ 67.5%
C 20.6%
Python 6.6%
CMake 3.4%
Shell 0.6%
その他 1.1%