ECR #333753 - linker: rely on builtins library triple instead of elf binary
This is the first of multiple changes aimed at unifying the
offline linker (llvm-link) with the online linker in the compiler
library. The online linker is considered state-of-the-art and the
code there needs to be made available to the offline linker.
This change teaches the online linker to determine the target by
examining the target triple on the builtins library modules,
instead of checking the elf binary target. The assumption is that
the builtins library always matches the actual target as
confirmed in CL 1041226. This removes one dependence of compiler
library functions so that the affected code can eventually be
moved to llvm/lib and shared with the offline linker.
The change passes smoke_clang (Orca build), smoke (HSA build) and Teamcity pre-checkin.
Reviewed by Brian Sumner, Yaxun Liu, Stanislav Mekhanoshin
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/linker.cpp#107 edit
ECR #304775 - Bug 10112 - Raise default unroll threshold. The current default is 100, which is even lower than the LLVM default of 150. Increasing to 200 is a modest increase, and this should probably be even higher.
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/OPTIONS.def#111 edit
ECR #333753 - Compiler Lib: Error if wrong combination of march & OpenCL version
HSAIL doesn't support OpenCL version < 2.0
AMDIL doesn't support OpenCL version >= 2.0
Affects only ORCA builds (both 1.2 & 2.0), doesn't affect .hsa build.
Testing: smoke_clang, pre check-in
Reviewer: Stanislav Mekhanoshin
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/v0_8/if_acl.cpp#38 edit
EPR #389586 - Add workaround for VI SPI SGPR initialization hardware bug for HSAIL path.
There is a hardware bug in VI (UBTS502672) which requires a workaround. Compute shaders need to tell shader compiler the available sGPR is 78 and set sGPUR usage in the compiled ISA to be 94. It has been done in AMDIL path but not done in HSAIL path. This change will apply the workaround to HSAIL path.
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/scwrapper/SI/devStateSI.cpp#16 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/scwrapper/SI/devStateSI.h#11 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/gpu/scwrapper/SI/scCompileSI.cpp#41 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/OPTIONS.def#109 edit
ECR #377625 - Allow function call for function with internal linkage.
Internal linkage correponds to static function in C. The function could be large and should be allowed to be not inlined.
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/linker.cpp#106 edit