Commit Graph

38 Commits

Author SHA1 Message Date
Patryk Wrobel 0a5f78fbfe Test remaining parts of ocloc_arg_helper
This change introduces remaining ULTs for ocloc_arg_helper
to ensure, that its files are fully covered.

Related-To: NEO-6834
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2022-04-25 17:23:31 +02:00
Patryk Wrobel 35a04e5915 Refactor and test initialization of FCL in ocloc
This change:
- extracts FCL to a separate class called OclocFclFacade
- tests the new class
- tests its usage in offline compiler

Related-To: NEO-6834
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2022-04-22 10:25:16 +02:00
Patryk Wrobel a8680c0b82 Implement ULTs for IgaWrapper
This change:
- implements mock for functions from IGA DLL
- implements ULTs for IgaWrapper
- implements RAII wrapper for GTEST's capture of stdout
- adds ASAN and TSAN flags to ocloc_tests

Related-To: NEO-6834
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2022-04-19 12:26:36 +02:00
Patryk Wrobel 303c12bc5b Refactor and test initialization of IGC in ocloc
This change:
- encapsulates initialization of IGC in a separate class
- removes code duplication from OfflineLinker and OfflineCompiler
- tests the new encapsulated class

Related-To: NEO-6834
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2022-04-19 12:15:34 +02:00
Patryk Wrobel 6f911ba840 Add unit tests for MultiCommand class
This change improves code coverage of MultiCommand class.

Related-To: NEO-6834
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2022-04-08 22:05:16 +02:00
Patryk Wrobel 76349b8030 Improve code coverage of OfflineCompiler class
This change introduces unit tests related to
member functions of OfflineCompiler class.
OfflineCompiler::initialize() is not covered
and it will be added in a separate commit.

Related-To: NEO-6834
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2022-04-07 13:58:52 +02:00
Patryk Wrobel 50efd09ad8 Improve code coverage of binary encoder and decoder
This change contains ULTs, which improve the
coverage of BinaryEncoder and BinaryDecoder
classes.

Related-To: NEO-6834
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2022-04-04 17:20:01 +02:00
Patryk Wrobel 9cba46e5bf Improve code coverage of MultiCommand class
This change introduces ULTs for untested
parts of MultiCommand class. Furthermore,
it contains MockMultiCommand class, which
allows white-box testing.

Related-To: NEO-6834
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2022-04-01 14:04:16 +02:00
Patryk Wrobel a0e7dce57a Test arguments parsing in OfflineCompiler class
This change contains ULTs for OfflineCompiler::parseCommandLine()
method. The goal was to improve code coverage.

Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2022-03-28 12:51:51 +02:00
Patryk Wrobel 14c9c57e0c Test buildFatBinaryForTarget()
This change contains ULTs for buildFatBinaryForTarget().
They are intented to cover untested code. Moreover,
the function signature has been changed to avoid copying
of std::vector of arguments.

Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2022-03-26 08:15:35 +01:00
Patryk Wrobel 6ac6db7b04 Store single generic IR in fatbinary when built from SPIR-V input
This change prevents embedding identical SPIR-V section for each
target requested in fatbinary build. Instead of duplicating SPIR-V,
a new file called 'generic_ir' is added to AR archive. It contains
SPIR-V, which was used to build fatbinary. Build fallback in runtime
has been also adjusted - if 'generic_ir' file is defined in fatbinary
and there is no matching binary, then this generic SPIR-V is used to
rebuild for the requested target.

Additionally, MockOclocArgumentHelper::loadDataFromFile() was adjusted
to ensure null-termination of returned strings.
This change also removes possible undefined behavior, which was
related to reading names of files from AR archive. Previously,
if filename was shorter than requested target name, we tried to
read more memory than allowed.

Related-To: NEO-6490
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2022-02-14 15:30:46 +01:00
Fabian Zwolinski 8f1004e48a Clean-up output after each test unit in offline compiler
Aditionally fix:
- GivenSpecifiedOutputDirWithProductConfigValueWhenBuilding...
...MultiCommandThenSuccessIsReturned
- GivenArgsWhenBuildingWithDeviceConfigValueThenBuildSucceeds
tests which used files created by previously run tests.
Now both of these tests are a separate units.

Related-To: NEO-6606
Signed-off-by: Fabian Zwolinski <fabian.zwolinski@intel.com>
2022-02-07 13:40:21 +01:00
Compute-Runtime-Validation 1634ac9ec3 Revert "Dont generate gen file by default"
This reverts commit 95943dee0f.

Signed-off-by: Compute-Runtime-Validation <compute-runtime-validation@intel.com>
2022-01-24 14:46:29 +01:00
Mateusz Borzyszkowski 95943dee0f Dont generate gen file by default
Ocloc can dump gen file when we add -gen_file flag to cmd.
Otherwise gen is not generated

Signed-off-by: Mateusz Borzyszkowski <mateusz.borzyszkowski@intel.com>
2022-01-17 18:14:50 +01:00
Patryk Wrobel 53482e6821 Allow ocloc to link files
Added 'link' option to ocloc CLI, which allows linking of
several IR files to single output file. Supported formats
of output file are ELF and LLVM BC.

Related-To: NEO-6163
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2022-01-14 16:18:36 +01:00
Patryk Wrobel 09eefb4968 Unify used flags in case of IR exclusion
Unifies usage of flags in case of IR exclusion from ocloc's output file.
When -exclude_ir parameter is active, then internal options passed to
IGC contain -exclude-ir-from-zebin to preserve consistency. Moreover,
when only -exclude-ir-from-zebin is present, then -exclude_ir is also set.

Related-To: NEO-6477
Signed-off-by: Patryk Wrobel <patryk.wrobel@intel.com>
2021-12-17 14:30:58 +01:00
Kamil Kopryk 03540d5301 Refactor per platform extra settings in ocloc
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
Related-To: NEO-6382
2021-10-28 16:24:12 +02:00
Kamil Kopryk cfc673b77c Add compilerHwInfoConfig
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
Related-To: NEO-6237
2021-10-06 21:27:34 +02:00
Kamil Kopryk 9293c9b676 Use isMidThreadPreemptionSupported helper in compiler interface
Signed-off-by: Kamil Kopryk <kamil.kopryk@intel.com>
2021-09-09 18:17:09 +02:00
lgotszal 3bd4bca911 Copyright header update
Dates corrected in copyright headers to reflect original publication date
(2018 for OpenCL, 2020 for Level Zero).

Signed-off-by: lgotszal <lukasz.gotszald@intel.com>
2021-05-17 20:38:19 +02:00
Kacper Nowak 260f7e37cb Add device product table based on device_base file for ocloc use
Signed-off-by: Kacper Nowak <kacper.nowak@intel.com>
2021-03-26 09:21:52 +01:00
Pawel Cieslak 8a700c5187 Move non-ult shared files to single directory
Add SKIP_SHARED_UNIT_TESTS flag

Related-To: NEO-5201
Signed-off-by: Pawel Cieslak <pawel.cieslak@intel.com>
2021-02-10 21:03:13 +01:00
Mateusz Hoppe 6f69bd3560 Initialize SIP kernel in Device::create()
Related-To: NEO-4878

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2021-01-08 15:46:23 +01:00
Mateusz Hoppe 0eb10d7505 Switch to new compiler interface to get system routine
Related-To: NEO-4773
2021-01-04 15:36:15 +01:00
Mateusz Hoppe ed1e3de54a Revert "Switch to new compiler interface to get system routine"
This reverts commit 09bdd2ad09.

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2020-12-23 15:50:57 +01:00
Mateusz Hoppe 09bdd2ad09 Switch to new compiler interface to get system routine
Related-To: NEO-4773

Signed-off-by: Mateusz Hoppe <mateusz.hoppe@intel.com>
2020-12-22 17:20:30 +01:00
Jaroslaw Chodor 78dc305291 Ocloc - emit warning on input type mismatch
Change-Id: I57edcbd3025616698dbe7710f04d975db93ffdb9
2020-11-02 20:00:15 +01:00
Jaroslaw Chodor 91a36bf277 ocloc - preserve input spirv in output elf
Change-Id: I1205a5c655d643e0d6150f9dc7edaae30ad15225
2020-10-08 15:37:57 +02:00
Jaroslaw Chodor 51d00dbc47 ocloc zebin validator
Change-Id: I56bd384a0af4f3460a41850bf178c4163b812221
2020-08-13 14:17:39 +02:00
Andrzej Swierczynski c2534697e8 Pass revision ID to ocloc
Related-To: NEO-4004

Change-Id: I4a76d14ba445ac8aaaa81279a0726071a6361eae
Signed-off-by: Andrzej Swierczynski <andrzej.swierczynski@intel.com>
2020-07-31 14:26:35 +02:00
Plewka, Maciej 48d990dfc9 Revert "Pass revision ID to ocloc"
This reverts commit 05990b628b.

Change-Id: I7213d5cb75d6e5657410773da8c7ff386c6bbf8a
2020-07-24 18:00:48 +02:00
Andrzej Swierczynski 05990b628b Pass revision ID to ocloc
Related-To: NEO-4004

Change-Id: I3586782f4996e518fe69a9b6e2a2ed22ad19258b
Signed-off-by: Andrzej Swierczynski <andrzej.swierczynski@intel.com>
2020-07-23 16:19:14 +02:00
Mateusz Jablonski cb24b95833 ocloc: dump files even if the entire build failed
if compilation spirv -> binary fails then spv file is created

cleanup MockOfflineCompiler

Change-Id: I6352baaa11a8f4ca15dcb358b4f2fbcae1b89d24
Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
2020-06-02 19:18:43 +02:00
chmielew e2dedd41f4 ocloc - argHelper support for MultiCommand and FatBinary
Change-Id: If4a4e6292609ce544a6534ebd4937ffe1cc09e67
2020-03-13 10:31:19 +01:00
chmielew e28419fc91 moving ocloc to shared folder
Change-Id: Ic739cf747f7e6fae2c0cd57f0bc1aa0899d3aa53
2020-02-27 18:46:00 +01:00
chmielew 697848f3d1 ocloc as shared library, ocloc API
Change-Id: Ie866b9ad5ee6de8c8b10f83551e2a3cab9d64a02
2020-02-27 12:14:05 +01:00
kamdiedrich 87c5d2663b Add absolute path to unit_tests
Change-Id: I7a64f79a39dff4f5fa4166244e71872bb614724f
2020-02-23 17:18:04 +01:00
kamdiedrich e8852a68c4 Reorganization directory structure [2/n]
Change-Id: I47962d17d755e80dcd9476e1ed75560f433f6115
2020-02-23 12:01:27 +01:00