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
SWDEV-2 - Change OpenCL version number from 1973 to 1974.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1720 edit
[ROCm/clr commit: e2400375ae]
SWDEV-2 - Change OpenCL version number from 1973 to 1974.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1720 edit
SWDEV-2 - Change OpenCL version number from 1972 to 1973.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1719 edit
[ROCm/clr commit: 202a318a7c]
SWDEV-2 - Change OpenCL version number from 1972 to 1973.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1719 edit
SWDEV-2 - Change OpenCL version number from 1971 to 1972.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1718 edit
[ROCm/clr commit: 71d54a75af]
SWDEV-2 - Change OpenCL version number from 1971 to 1972.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1718 edit
When the Thunk is initialized multiple times in the lifetime of a single process
, some global resources are leaked. This can happen when dlopen and dlclose are
used to load the library at runtime, rather than linking the runtime against
the Thunk. This patch adds the destructor to release global resources when
dlclose is called.
Change-Id: Ia00da0d41f095d0b2706f98c0e75effedd596f49
When the Thunk is initialized multiple times in the lifetime of a single process
, some global resources are leaked. This can happen when dlopen and dlclose are
used to load the library at runtime, rather than linking the runtime against
the Thunk. This patch adds the destructor to release global resources when
dlclose is called.
Change-Id: Ia00da0d41f095d0b2706f98c0e75effedd596f49
[ROCm/ROCR-Runtime commit: 582b70f9c3]
SWDEV-2 - Change OpenCL version number from 1970 to 1971.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1717 edit
[ROCm/clr commit: 1633e2c95d]
SWDEV-2 - Change OpenCL version number from 1970 to 1971.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1717 edit
SWDEV-82296 - [CQE OCL][2.0][HWSC][16.10]SDK Sample "AtomicCounters" 32/64bit failed with HWSC driver
Disabling the cl_ext_atomic_counters_32 extension since there is no support for this extension on HSAIL and HWS.
ReviewBoardURL = http://ocltc.amd.com/reviews/r/9221/
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/device.hpp#265 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#538 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpusettings.cpp#338 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/hsa_foundation/hsasettings.cpp#11 edit
[ROCm/clr commit: 9b2fc7a77e]
SWDEV-82296 - [CQE OCL][2.0][HWSC][16.10]SDK Sample "AtomicCounters" 32/64bit failed with HWSC driver
Disabling the cl_ext_atomic_counters_32 extension since there is no support for this extension on HSAIL and HWS.
ReviewBoardURL = http://ocltc.amd.com/reviews/r/9221/
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/device.hpp#265 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#538 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpusettings.cpp#338 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/hsa_foundation/hsasettings.cpp#11 edit
SWDEV-2 - Change OpenCL version number from 1969 to 1970.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1716 edit
[ROCm/clr commit: b4dd604375]
SWDEV-2 - Change OpenCL version number from 1969 to 1970.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1716 edit
SWDEV-2 - Change OpenCL version number from 1968 to 1969.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1715 edit
[ROCm/clr commit: f71d4a0f85]
SWDEV-2 - Change OpenCL version number from 1968 to 1969.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1715 edit
SWDEV-2 - Change OpenCL version number from 1967 to 1968.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1714 edit
[ROCm/clr commit: 689df36770]
SWDEV-2 - Change OpenCL version number from 1967 to 1968.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1714 edit
SWDEV-83242 - RT: disable ADL reload in app detect
Reload is disabled in ADL with the change list 1198904 and ticket
SWDEV-59442 - The ADL_ApplicationProfiles_System_Reload Function is not Re-entrant.
Returned value of the call is ADL_ERR_NOT_SUPPORTED on Windows.
Thus appprofiles do not currently work with the OpenCL.
This change removes reload call result check and profiles work again.
Testing: smoke, precheckin, use of customized app profile
Reviewed by German Andreev
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/appprofile.cpp#11 edit
[ROCm/clr commit: 86fe69e9ef]
SWDEV-83242 - RT: disable ADL reload in app detect
Reload is disabled in ADL with the change list 1198904 and ticket
SWDEV-59442 - The ADL_ApplicationProfiles_System_Reload Function is not Re-entrant.
Returned value of the call is ADL_ERR_NOT_SUPPORTED on Windows.
Thus appprofiles do not currently work with the OpenCL.
This change removes reload call result check and profiles work again.
Testing: smoke, precheckin, use of customized app profile
Reviewed by German Andreev
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/appprofile.cpp#11 edit
SWDEV-2 - Change OpenCL version number from 1966 to 1967.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1713 edit
[ROCm/clr commit: e9b3baa3d0]