SWDEV-77584 - Fix ocl_conformance compiler failures.
1. If compiling in debug mode, linkImpl wasn't called and kernelNames wasn't set
which led to CL_INVALID_KERNEL_NAME errors in debug configs in TeamCity. Looking at AMDIL
code, there is no reason to skip linkImpl in debug mode.
2. Set types to TYPE_LIBRARY/TYPE_EXECUTABLE. This fixes ocl_conformance compiler program_binary_type.
Reviewed by: Evgeniy Mankov
Testing: smoke, pre-checkin, OCLSeparateCompile.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuprogram.cpp#218 edit
SWDEV-2 - Change OpenCL version number from 1987 to 1988.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1734 edit
[ROCm/clr commit: cfc2b489df]
SWDEV-2 - Change OpenCL version number from 1987 to 1988.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1734 edit
SWDEV-2 - Change OpenCL version number from 1986 to 1987.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1733 edit
[ROCm/clr commit: 422318b9aa]
SWDEV-2 - Change OpenCL version number from 1986 to 1987.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1733 edit
SWDEV-2 - Change OpenCL version number from 1985 to 1986.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1732 edit
[ROCm/clr commit: 32568eec9b]
SWDEV-2 - Change OpenCL version number from 1985 to 1986.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1732 edit
SWDEV-2 - Change OpenCL version number from 1984 to 1985.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1731 edit
[ROCm/clr commit: 4e074c4044]
SWDEV-2 - Change OpenCL version number from 1984 to 1985.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1731 edit
SWDEV-2 - Change OpenCL version number from 1983 to 1984.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1730 edit
[ROCm/clr commit: fe72e17898]
SWDEV-2 - Change OpenCL version number from 1983 to 1984.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1730 edit
SWDEV-66693 - OpenCL Runtime HW Debug support development - use flag, instead of getenv() call, in IOL to indicate the enablement of HW Debug.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#151 edit
[ROCm/clr commit: f15514da95]
SWDEV-66693 - OpenCL Runtime HW Debug support development - use flag, instead of getenv() call, in IOL to indicate the enablement of HW Debug.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#151 edit
SWDEV-80173 - Switching HSAIL on OpenCL stack by default.
1. HSAIL becomes default backend for OpenCL (all versions) on all GFX7+ (CI+) devices.
2. AMDIL stays default on pre CI+ devices.
3. AMDIL is forced implicitly:
a) for pre CI+ devices;
b) if clc++ extension is used: "-x -clc++";
c) if input IL is SPIR: "-x -spir";
4. To force AMDIL explicitly "-legacy" option should be added to AMD_OCL_BUILD_OPTIONS or AMD_OCL_BUILD_OPTIONS_APPEND environment variable.
5. SPIRV always goes through HSAIL and couldn't be forced to AMDIL explicitly or implicitly.
6. Compilation of Blit kernels couldn't be forced to AMDIL too, they are compiled via HSAIL on GFX7+, otherwise - via AMDIL. The logic is almost the same as it is currently.
7. test_driver.pl is switched to OpenCL 1.2/HSAIL by default. Previously OpenCL 2.0/HSAIL was by default and all OpenCL 1.2 tests went through AMDIL.
[Testing]
offline: weekly, smoke
online: bootleg, ocltst, ocl conformance 1.2/2.0, AMD SDK 3.0, Blender 2.76b, performance testing, manual testing on CI+ devices with forcing AMDIL "-legacy".
pre-checkin:
http://ocltc.amd.com:8111/viewModification.html?modId=64664&personal=true&buildTypeId=&tab=vcsModificationBuilds&show_all_builds=true
[Reviewers]
Brian Sumner, Stanislav Mekhanoshin, German Andryeyev, Nikolay Haustov
http://ocltc.amd.com/reviews/r/8850
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/flags.hpp#248 edit
... //depot/stg/opencl/drivers/opencl/tests/hsa/bin/test_driver.pl#24 edit
[ROCm/clr commit: b01869b54b]
SWDEV-80173 - Switching HSAIL on OpenCL stack by default.
1. HSAIL becomes default backend for OpenCL (all versions) on all GFX7+ (CI+) devices.
2. AMDIL stays default on pre CI+ devices.
3. AMDIL is forced implicitly:
a) for pre CI+ devices;
b) if clc++ extension is used: "-x -clc++";
c) if input IL is SPIR: "-x -spir";
4. To force AMDIL explicitly "-legacy" option should be added to AMD_OCL_BUILD_OPTIONS or AMD_OCL_BUILD_OPTIONS_APPEND environment variable.
5. SPIRV always goes through HSAIL and couldn't be forced to AMDIL explicitly or implicitly.
6. Compilation of Blit kernels couldn't be forced to AMDIL too, they are compiled via HSAIL on GFX7+, otherwise - via AMDIL. The logic is almost the same as it is currently.
7. test_driver.pl is switched to OpenCL 1.2/HSAIL by default. Previously OpenCL 2.0/HSAIL was by default and all OpenCL 1.2 tests went through AMDIL.
[Testing]
offline: weekly, smoke
online: bootleg, ocltst, ocl conformance 1.2/2.0, AMD SDK 3.0, Blender 2.76b, performance testing, manual testing on CI+ devices with forcing AMDIL "-legacy".
pre-checkin:
http://ocltc.amd.com:8111/viewModification.html?modId=64664&personal=true&buildTypeId=&tab=vcsModificationBuilds&show_all_builds=true
[Reviewers]
Brian Sumner, Stanislav Mekhanoshin, German Andryeyev, Nikolay Haustov
http://ocltc.amd.com/reviews/r/8850
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/flags.hpp#248 edit
... //depot/stg/opencl/drivers/opencl/tests/hsa/bin/test_driver.pl#24 edit
SWDEV-2 - Change OpenCL version number from 1982 to 1983.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1729 edit
[ROCm/clr commit: 719b49cde5]
SWDEV-2 - Change OpenCL version number from 1982 to 1983.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1729 edit
SWDEV-80173 - remove the opt level adjustment based on the function size
Since it only limits the llvm backend, but not optimizer or SC it really hurts the compile time.
A huge unoptimized hsail after inlining and no backend optimizations goes to the SC with overwhelming results.
A proper way of addressing these issues is to keep inlining reasonable.
Testing: smoke, precheckin
Reviewed by Evgeny Mankov
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/codegen.cpp#65 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Transforms/IPO/AMDInline.cpp#3 edit
[ROCm/clr commit: 13f385908c]
SWDEV-80173 - remove the opt level adjustment based on the function size
Since it only limits the llvm backend, but not optimizer or SC it really hurts the compile time.
A huge unoptimized hsail after inlining and no backend optimizations goes to the SC with overwhelming results.
A proper way of addressing these issues is to keep inlining reasonable.
Testing: smoke, precheckin
Reviewed by Evgeny Mankov
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/codegen.cpp#65 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Transforms/IPO/AMDInline.cpp#3 edit
SWDEV-2 - Change OpenCL version number from 1981 to 1982.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1728 edit
[ROCm/clr commit: 0563042068]
SWDEV-2 - Change OpenCL version number from 1981 to 1982.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1728 edit
SWDEV-2 - Change OpenCL version number from 1980 to 1981.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1727 edit
[ROCm/clr commit: 30759cdec9]
SWDEV-2 - Change OpenCL version number from 1980 to 1981.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1727 edit
This is required when we have a debug session
Change-Id: If9d6d2d23a9016b6ca9562e02a91fc16e0354ee4
Signed-off-by: Yair Shachar <Yair.Shachar@amd.com>
[ROCm/ROCR-Runtime commit: 681f4dcecc]
SWDEV-2 - Change OpenCL version number from 1979 to 1980.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1726 edit
[ROCm/clr commit: 85dc0b14b1]
SWDEV-2 - Change OpenCL version number from 1979 to 1980.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1726 edit
SWDEV-2 - Change OpenCL version number from 1978 to 1979.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1725 edit
[ROCm/clr commit: 6d4a212f8c]
SWDEV-2 - Change OpenCL version number from 1978 to 1979.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1725 edit
SWDEV-80173 - HSA HLC: disable liveness analysis and jump threading
After the investigation I have found liveness analysis never changed code generation in any of the benchmarks or applications.
Its only use is in the LICM and the hoisting limitation was never really triggered.
Since the analysis is very expensive I'm disabling it.
The jump threading is generally bad on the GPU because it creates unstructured control flow.
Even if hsail might become smaller and have less branches, it does not help because finalzier's structurizer will have to clone blocks.
Jump threading is disabled for GPU. This improves compilation speed and just slightly improves performance.
Testing: smoke, precheckin, vray and blender compilation
Reviewed by Daniil Fukalov
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/OPTIONS.def#133 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/include/llvm/AMDLLVMContextHook.h#29 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Analysis/AMDLiveAnalysis.cpp#32 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Transforms/IPO/AMDPassManagerBuilder.cpp#61 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/tools/opt/amdopt.inc#29 edit
[ROCm/clr commit: 36fb8d6764]
SWDEV-80173 - HSA HLC: disable liveness analysis and jump threading
After the investigation I have found liveness analysis never changed code generation in any of the benchmarks or applications.
Its only use is in the LICM and the hoisting limitation was never really triggered.
Since the analysis is very expensive I'm disabling it.
The jump threading is generally bad on the GPU because it creates unstructured control flow.
Even if hsail might become smaller and have less branches, it does not help because finalzier's structurizer will have to clone blocks.
Jump threading is disabled for GPU. This improves compilation speed and just slightly improves performance.
Testing: smoke, precheckin, vray and blender compilation
Reviewed by Daniil Fukalov
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/OPTIONS.def#133 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/include/llvm/AMDLLVMContextHook.h#29 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Analysis/AMDLiveAnalysis.cpp#32 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Transforms/IPO/AMDPassManagerBuilder.cpp#61 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/tools/opt/amdopt.inc#29 edit
SWDEV-2 - Change OpenCL version number from 1977 to 1978.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1724 edit
[ROCm/clr commit: deeb9b0bc9]
SWDEV-2 - Change OpenCL version number from 1977 to 1978.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1724 edit
SWDEV-2 - Change OpenCL version number from 1976 to 1977.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1723 edit
[ROCm/clr commit: 3c12296bdc]
SWDEV-2 - Change OpenCL version number from 1976 to 1977.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1723 edit
SWDEV-2 - Change OpenCL version number from 1975 to 1976.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1722 edit
[ROCm/clr commit: ada74e5849]
SWDEV-2 - Change OpenCL version number from 1975 to 1976.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1722 edit
SWDEV-83467 - [SPIRV] Add support of SPIRV to CPU
Modifying runtime and compile time to allow SPIRV binaries to run on CPU since it only runs on HSAIL GPU
Added changes to allow conversion of CPU's llvmBinaryIsSpir boolean into compiler library's oclElfSections enum
Cpuprogram.cpp's llvmBinaryIsSpir flag renamed to elfSectionType will now support LLVMIR, SPIR, and SPIRV
Added SPIRV to compiler lib's elf as new oclElfSections enum
cpuprogram.cpp changes also made to gpuprogram.cpp's NullProgram to allow compilation
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/loaders/elf/elf.cpp#33 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/loaders/elf/elf.hpp#22 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/cpu/cpuprogram.cpp#69 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/device.cpp#191 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/device.hpp#266 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpucompiler.cpp#152 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuprogram.cpp#217 edit
[ROCm/clr commit: 26be053088]
SWDEV-83467 - [SPIRV] Add support of SPIRV to CPU
Modifying runtime and compile time to allow SPIRV binaries to run on CPU since it only runs on HSAIL GPU
Added changes to allow conversion of CPU's llvmBinaryIsSpir boolean into compiler library's oclElfSections enum
Cpuprogram.cpp's llvmBinaryIsSpir flag renamed to elfSectionType will now support LLVMIR, SPIR, and SPIRV
Added SPIRV to compiler lib's elf as new oclElfSections enum
cpuprogram.cpp changes also made to gpuprogram.cpp's NullProgram to allow compilation
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/loaders/elf/elf.cpp#33 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/loaders/elf/elf.hpp#22 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/cpu/cpuprogram.cpp#69 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/device.cpp#191 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/device.hpp#266 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpucompiler.cpp#152 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuprogram.cpp#217 edit
SWDEV-2 - Change OpenCL version number from 1974 to 1975.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1721 edit
[ROCm/clr commit: 82415554d4]
SWDEV-2 - Change OpenCL version number from 1974 to 1975.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1721 edit