SWDEV-94189 - HSA Finalizer: do not use temp files
New memfile interface is used to emulate files in memory inside perforce build.
Testing: smoke, precheckin, test_compiler, vp9 in chrome sandbox
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/loaders/elf/utils/libelf/_libelf_config.h#4 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/loaders/elf/utils/libelf/elf_begin.c#5 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/loaders/elf/utils/libelf/memfile.cpp#2 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/loaders/elf/utils/libelf/memfile.h#2 edit
SWDEV-2 - Change OpenCL version number from 2144 to 2145.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1891 edit
SWDEV-79278 - [OpenCL][PAL][GFXIP9 Bring up] OCL GFXIP9 general development.Adding support for ASIC detection based on gfxLevel on PAL. For GFXIP9+, the Asic revision on PAL is Unknown and gfxLevel should be used for ASIC detection.
ReviewBoardURL = http://ocltc.amd.com/reviews/r/10616/
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldefs.hpp#4 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldevice.cpp#9 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palprogram.cpp#6 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palsettings.cpp#4 edit
SWDEV-2 - Change OpenCL version number from 2143 to 2144.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1890 edit
SWDEV-2 - Change OpenCL version number from 2142 to 2143.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1889 edit
SWDEV-2 - Change OpenCL version number from 2141 to 2142.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1888 edit
SWDEV-94189 - ORCA RT: do not use temp files
This is memfile implementation, an interface to plug into libelf and emulate files in memory w/o any IO.
If passed filename to open() is empty it will use in memory file, otherwise proxy it to the real file IO routine.
This allows RT not to use temp files. Next this interface will be plugged to the finalizer.
Testing: smoke, precheckin, conformance 2.0 reallyquick, test_compiler 1.2 with -legacy, test_compiler with -save-temps-all and -g -O0 -mem2reg=0
Reviewed by Evgeny Mankov
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/loaders/elf/elf.cpp#34 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/loaders/elf/elf.hpp#23 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/loaders/elf/elf_utils.cpp#2 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/loaders/elf/utils/libelf/_libelf_config.h#3 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/loaders/elf/utils/libelf/build/Makefile.libelf#5 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/loaders/elf/utils/libelf/elf_update.c#12 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/loaders/elf/utils/libelf/memfile.cpp#1 add
... //depot/stg/opencl/drivers/opencl/compiler/lib/loaders/elf/utils/libelf/memfile.h#1 add
SWDEV-2 - Change OpenCL version number from 2140 to 2141.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1887 edit
SWDEV-2 - Change OpenCL version number from 2139 to 2140.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1886 edit
SWDEV-2 - Change OpenCL version number from 2138 to 2139.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1885 edit
SWDEV-2 - Change OpenCL version number from 2137 to 2138.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1884 edit
SWDEV-2 - Change OpenCL version number from 2136 to 2137.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1883 edit
SWDEV-2 - Change OpenCL version number from 2135 to 2136.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1882 edit
SWDEV-2 - Change OpenCL version number from 2134 to 2135.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1881 edit
SWDEV-92067 - Put back full CL#1275679.
TC has added '//depot/stg/opencl/drivers/opencl/appprofiles/...' to the OpenCL Brahma Builds' client-spec.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/appprofile.cpp#14 edit
SWDEV-2 - Change OpenCL version number from 2133 to 2134.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1880 edit
SWDEV-76911 - Set output pipeline of multi-shader compilation in the same way driver sets. Fill output shader pointers only if they will be generated based on the input shaders, otherwise NULL.
ReviewBoardURL = http://dxreview.amd.com/r/20059/
Affected files ...
... //depot/stg/sc/Src/Dev/TestEngine.cpp#512 edit
SWDEV-92067 - Revert part of CL#1275679 for now, to fix TC OpenCL Brahma build.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/appprofile.cpp#13 edit
SWDEV-92067 - Support app profiles on Brahma.
The Brahma kernel driver does not support parsing the app profile blob files, and does not have ADL. OGL has a library that reads and parses the blob file directly. This CL imports the OGL library into OCL runtime.
Affected files ...
... //depot/stg/opencl/drivers/opencl/appprofiles/brahma/apl.cpp#1 add
... //depot/stg/opencl/drivers/opencl/appprofiles/brahma/apl.hpp#1 add
... //depot/stg/opencl/drivers/opencl/appprofiles/brahma/aplexport.cpp#1 add
... //depot/stg/opencl/drivers/opencl/appprofiles/brahma/structanddefines.hpp#1 add
... //depot/stg/opencl/drivers/opencl/runtime/build/Makefile.runtime#63 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/appprofile.cpp#12 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/appprofile.hpp#9 edit
SWDEV-2 - Change OpenCL version number from 2132 to 2133.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1879 edit
SWDEV-2 - Change OpenCL version number from 2131 to 2132.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1878 edit
SWDEV-86035 - Add PAL backend to OpenCL
- Fix imagebuffer and SRGB failures in Conformance 2.0. The new PAL is required for all imagebuffer formats.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldevice.cpp#8 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palresource.cpp#5 edit
SWDEV-2 - Change OpenCL version number from 2130 to 2131.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1877 edit
SWDEV-2 - Change OpenCL version number from 2129 to 2130.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1876 edit
SWDEV-2 - Change OpenCL version number from 2128 to 2129.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1875 edit
SWDEV-2 - Change OpenCL version number from 2127 to 2128.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1874 edit
SWDEV-95095 - Bristol Ridge parts report their OpenCL device ID name as "Carrizo"
- Detect the ASIC revision for the name swap with Bristo Ridgel instead of Carrizo
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpucompiler.cpp#154 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudevice.cpp#548 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#168 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/backend.h#13 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palcompiler.cpp#2 edit
SWDEV-79445 - Fix a TC regression after CL#1273440
- Add the both conditions to the restrictions: sorce and destination alignment
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#167 edit
SWDEV-2 - Change OpenCL version number from 2126 to 2127.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1873 edit
SWDEV-94881 - [OpenCL]increasing the size limit of image buffer to 2^27 which is for the moment at 65536
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpudefs.hpp#136 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/paldefs.hpp#3 edit
SWDEV-93545 - HSA HLC: target option interface between complib and BE and denorm control refactoring
Global variables and associated options to control target GPU for optimizations and fp32 denorm support are removed.
Instead standard llvm -mcpu=<cpu> is used to pass chip family name and fp32 denorm is turned into a subtarget feature.
Subtarget feature can be set for llc as standard -mattr=+fp32-denormals and corresponding code to pass feature string
to the BE is added to the compiler lib, mimicing what we used to have for AMDIL.
Device name HSAIL metadata will now reflect an actual GPU family passed to the HSAIL BE instead of "generic".
Denorm support can be switched on as a feature bit in the target mapping. It is on starting from VI. However, just
switching this bit for a family will not produce denorm supporting code. The option -cl-denorms-are-zero can be used
to override this and runtime passes it for configs where CL_FP_DENORM is not reported.
Currently CL_FP_DENORM is not reported for any device, however it can be changed with AMD_GPU_FORCE_SINGLE_FP_DENORM
environment variable. If set it will be honored only starting from VI as set in the target mapping.
Implemented isFMAFasterThanFMulAndFAdd to handle use of v_fma_f32 on GFX9 instead of a direct chip family check.
Testing: smoke, precheckin
Reviewed by Evgeny Mankov
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/codegen.cpp#70 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/linker.cpp#146 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/opt_level.cpp#30 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/v0_8/libUtils.cpp#18 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/v0_8/libUtils.h#27 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/v0_8/target_mappings.h#42 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/v0_8/target_mappings_hsail.h#32 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/v0_8/target_mappings_hsail64.h#27 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Target/HSAIL/BRIGAsmPrinter.cpp#155 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Target/HSAIL/BRIGAsmPrinter.h#69 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Target/HSAIL/HSAIL.td#11 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Target/HSAIL/HSAILISelDAGToDAG.cpp#71 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Target/HSAIL/HSAILISelLowering.cpp#116 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Target/HSAIL/HSAILISelLowering.h#29 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Target/HSAIL/HSAILInstrInfo.cpp#42 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Target/HSAIL/HSAILInstrInfo.h#18 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Target/HSAIL/HSAILInstructions.td#22 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Target/HSAIL/HSAILKernelManager.cpp#55 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Target/HSAIL/HSAILSubtarget.cpp#14 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Target/HSAIL/HSAILSubtarget.h#15 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Target/HSAIL/HSAILTargetMachine.cpp#57 edit
... //depot/stg/opencl/drivers/opencl/tests/hsa/bin/test_driver.pl#29 edit
... //depot/stg/opencl/drivers/opencl/tests/hsa/tlst/llc_opt.tlst#97 edit
... //depot/stg/opencl/drivers/opencl/tests/hsa/tlst/ocl_features.tlst#58 edit
SWDEV-94161 - [Adobe Photoshop] TDR is observed while applying Blur effect on the selected portion of an Image
- Restore back the original condition for SDMA restriction (CL#1195487). The root cause wasn't identified and probably somewhere in GSL, since PAL backend works fine.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gslbe/src/rt/GSLDevice.cpp#166 edit
SWDEV-85602 - HSA HLC: serialize linking
Since we do not have build referenced symbol map now during linking we do not have to keep all library modules
in memory during the whole link process. This change serializes linking to save some memory.
Testing: smoke, precheckin
Reviewed by Evgeny Mankov
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/linker.cpp#145 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/linker/include/AMDResolveLinker.h#5 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/linker/lib/AMDResolveLinker.cpp#5 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/linker/tools/opencl-link/opencl-link.cpp#7 edit
SWDEV-2 - Change OpenCL version number from 2125 to 2126.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1872 edit
SWDEV-2 - Change OpenCL version number from 2124 to 2125.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1871 edit
SWDEV-94524 - [OCL] Call to clBuildProgram crashes amdocl64.dll
- Detect offline device and return a fake srd handle. Compiler must reload binary for a specific device in order for the binary to have proper functionality
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/device/gpu/gpuprogram.cpp#226 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palprogram.cpp#5 edit
SWDEV-2 - Change OpenCL version number from 2123 to 2124.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1870 edit
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
SWDEV-2 - Change OpenCL version number from 2122 to 2123.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1869 edit
SWDEV-2 - Change OpenCL version number from 2121 to 2122.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1868 edit
SWDEV-2 - Change OpenCL version number from 2120 to 2121.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1867 edit
SWDEV-2 - Change OpenCL version number from 2119 to 2120.
Affected files ...
... //depot/stg/opencl/drivers/opencl/runtime/utils/versions.hpp#1866 edit