From 28464ab2d46e5742f31cb8eb4a8931ac1974dd44 Mon Sep 17 00:00:00 2001 From: Jaroslaw Chodor Date: Tue, 22 Oct 2019 12:09:08 +0200 Subject: [PATCH] [N/N] compiler interface refactor - move to core Change-Id: I029e3cd7a6adde9df97a0a7760ecbf5d25d8f501 --- core/compiler_interface/CMakeLists.txt | 4 + .../compiler_interface/compiler_interface.cpp | 4 +- .../compiler_interface/compiler_interface.h | 0 .../compiler_interface/compiler_interface.inl | 0 .../compiler_interface/create_main.cpp | 0 .../compiler_interface/CMakeLists.txt | 1 + .../compiler_cache_tests.cpp | 2 +- .../compiler_interface_tests.cpp | 78 +--------------- offline_compiler/CMakeLists.txt | 2 +- runtime/built_ins/built_ins.cpp | 2 +- runtime/compiler_interface/CMakeLists.txt | 4 - runtime/context/context.cpp | 2 +- .../execution_environment.cpp | 2 +- runtime/platform/platform.cpp | 2 +- runtime/program/build.cpp | 5 +- runtime/program/compile.cpp | 2 +- runtime/program/link.cpp | 2 +- runtime/program/program.cpp | 2 +- runtime/program/program.h | 2 +- unit_tests/api/cl_build_program_tests.inl | 2 +- unit_tests/api/cl_compile_program_tests.inl | 2 +- ...te_program_with_built_in_kernels_tests.cpp | 2 +- .../api/cl_get_kernel_arg_info_tests.inl | 2 +- unit_tests/api/cl_get_kernel_info_tests.inl | 2 +- .../cl_get_kernel_work_group_info_tests.inl | 2 +- .../api/cl_get_mem_object_info_tests.inl | 2 +- .../api/cl_get_program_build_info_tests.inl | 2 +- unit_tests/api/cl_get_program_info_tests.inl | 2 +- unit_tests/api/cl_link_program_tests.inl | 2 +- unit_tests/compiler_interface/CMakeLists.txt | 1 - .../execution_environment_tests.cpp | 2 +- unit_tests/mem_obj/image_tests.cpp | 2 +- unit_tests/mocks/mock_compilers.h | 3 +- unit_tests/mocks/mock_context.cpp | 2 +- unit_tests/program/CMakeLists.txt | 3 +- .../program/program_spec_constants_tests.cpp | 92 +++++++++++++++++++ .../program_with_block_kernels_tests.cpp | 2 +- unit_tests/program/program_with_source.h | 2 +- 38 files changed, 131 insertions(+), 114 deletions(-) rename {runtime => core}/compiler_interface/compiler_interface.cpp (99%) rename {runtime => core}/compiler_interface/compiler_interface.h (100%) rename {runtime => core}/compiler_interface/compiler_interface.inl (100%) rename {runtime => core}/compiler_interface/create_main.cpp (100%) rename {unit_tests => core/unit_tests}/compiler_interface/compiler_interface_tests.cpp (94%) create mode 100644 unit_tests/program/program_spec_constants_tests.cpp diff --git a/core/compiler_interface/CMakeLists.txt b/core/compiler_interface/CMakeLists.txt index 83f82aafb5..f0058d622a 100644 --- a/core/compiler_interface/CMakeLists.txt +++ b/core/compiler_interface/CMakeLists.txt @@ -8,6 +8,10 @@ set(NEO_COMPILER_INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt ${CMAKE_CURRENT_SOURCE_DIR}/compiler_cache.h ${CMAKE_CURRENT_SOURCE_DIR}/compiler_cache.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/compiler_interface.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/compiler_interface.h + ${CMAKE_CURRENT_SOURCE_DIR}/compiler_interface.inl + ${CMAKE_CURRENT_SOURCE_DIR}/create_main.cpp ${CMAKE_CURRENT_SOURCE_DIR}/linker.h ${CMAKE_CURRENT_SOURCE_DIR}/linker.cpp ) diff --git a/runtime/compiler_interface/compiler_interface.cpp b/core/compiler_interface/compiler_interface.cpp similarity index 99% rename from runtime/compiler_interface/compiler_interface.cpp rename to core/compiler_interface/compiler_interface.cpp index 473b03212b..aa5db087ac 100644 --- a/runtime/compiler_interface/compiler_interface.cpp +++ b/core/compiler_interface/compiler_interface.cpp @@ -5,10 +5,10 @@ * */ -#include "runtime/compiler_interface/compiler_interface.h" +#include "core/compiler_interface/compiler_interface.h" #include "core/compiler_interface/compiler_cache.h" -#include "runtime/compiler_interface/compiler_interface.inl" +#include "core/compiler_interface/compiler_interface.inl" #include "runtime/device/device.h" #include "runtime/helpers/hw_info.h" #include "runtime/os_interface/debug_settings_manager.h" diff --git a/runtime/compiler_interface/compiler_interface.h b/core/compiler_interface/compiler_interface.h similarity index 100% rename from runtime/compiler_interface/compiler_interface.h rename to core/compiler_interface/compiler_interface.h diff --git a/runtime/compiler_interface/compiler_interface.inl b/core/compiler_interface/compiler_interface.inl similarity index 100% rename from runtime/compiler_interface/compiler_interface.inl rename to core/compiler_interface/compiler_interface.inl diff --git a/runtime/compiler_interface/create_main.cpp b/core/compiler_interface/create_main.cpp similarity index 100% rename from runtime/compiler_interface/create_main.cpp rename to core/compiler_interface/create_main.cpp diff --git a/core/unit_tests/compiler_interface/CMakeLists.txt b/core/unit_tests/compiler_interface/CMakeLists.txt index 7c0d7ba193..af08cdc4d8 100644 --- a/core/unit_tests/compiler_interface/CMakeLists.txt +++ b/core/unit_tests/compiler_interface/CMakeLists.txt @@ -7,6 +7,7 @@ set(NEO_CORE_COMPILER_INTERFACE_TESTS ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt ${CMAKE_CURRENT_SOURCE_DIR}/compiler_cache_tests.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/compiler_interface_tests.cpp ${CMAKE_CURRENT_SOURCE_DIR}/linker_mock.h ${CMAKE_CURRENT_SOURCE_DIR}/linker_tests.cpp ) diff --git a/core/unit_tests/compiler_interface/compiler_cache_tests.cpp b/core/unit_tests/compiler_interface/compiler_cache_tests.cpp index 6d7e1f67b6..182cd1fb62 100644 --- a/core/unit_tests/compiler_interface/compiler_cache_tests.cpp +++ b/core/unit_tests/compiler_interface/compiler_cache_tests.cpp @@ -6,10 +6,10 @@ */ #include "core/compiler_interface/compiler_cache.h" +#include "core/compiler_interface/compiler_interface.h" #include "core/helpers/aligned_memory.h" #include "core/helpers/hash.h" #include "core/helpers/string.h" -#include "runtime/compiler_interface/compiler_interface.h" #include "runtime/compiler_interface/default_cl_cache_config.h" #include "runtime/helpers/hw_info.h" #include "test.h" diff --git a/unit_tests/compiler_interface/compiler_interface_tests.cpp b/core/unit_tests/compiler_interface/compiler_interface_tests.cpp similarity index 94% rename from unit_tests/compiler_interface/compiler_interface_tests.cpp rename to core/unit_tests/compiler_interface/compiler_interface_tests.cpp index 89f2f2ef99..65b936c833 100644 --- a/unit_tests/compiler_interface/compiler_interface_tests.cpp +++ b/core/unit_tests/compiler_interface/compiler_interface_tests.cpp @@ -5,22 +5,16 @@ * */ +#include "core/compiler_interface/compiler_interface.h" +#include "core/compiler_interface/compiler_interface.inl" #include "core/helpers/file_io.h" #include "core/unit_tests/helpers/debug_manager_state_restore.h" -#include "runtime/compiler_interface/compiler_interface.h" -#include "runtime/compiler_interface/compiler_interface.inl" -#include "runtime/context/context.h" -#include "runtime/gen_common/hw_cmds.h" #include "runtime/helpers/hw_info.h" -#include "runtime/os_interface/debug_settings_manager.h" -#include "runtime/platform/platform.h" #include "unit_tests/fixtures/device_fixture.h" #include "unit_tests/global_environment.h" #include "unit_tests/helpers/test_files.h" #include "unit_tests/mocks/mock_cif.h" #include "unit_tests/mocks/mock_compilers.h" -#include "unit_tests/mocks/mock_context.h" -#include "unit_tests/mocks/mock_program.h" #include "gmock/gmock.h" @@ -1059,74 +1053,6 @@ TEST_F(CompilerInterfaceTest, givenCompilerInterfaceWhenGetSpecializationConstan EXPECT_EQ(TranslationOutput::ErrorCode::Success, err); } -struct UpdateSpecConstantsTest : public ::testing::Test { - void SetUp() override { - mockProgram.reset(new MockProgram(executionEnvironment)); - - mockProgram->specConstantsIds.reset(new MockCIFBuffer()); - mockProgram->specConstantsSizes.reset(new MockCIFBuffer()); - mockProgram->specConstantsValues.reset(new MockCIFBuffer()); - - mockProgram->specConstantsIds->PushBackRawCopy(1); - mockProgram->specConstantsIds->PushBackRawCopy(2); - mockProgram->specConstantsIds->PushBackRawCopy(3); - - mockProgram->specConstantsSizes->PushBackRawCopy(sizeof(char)); - mockProgram->specConstantsSizes->PushBackRawCopy(sizeof(uint16_t)); - mockProgram->specConstantsSizes->PushBackRawCopy(sizeof(int)); - - mockProgram->specConstantsValues->PushBackRawCopy(&val1); - mockProgram->specConstantsValues->PushBackRawCopy(&val2); - mockProgram->specConstantsValues->PushBackRawCopy(&val3); - - values = mockProgram->specConstantsValues->GetMemory(); - - EXPECT_EQ(val1, *reinterpret_cast(values[0])); - EXPECT_EQ(val2, *reinterpret_cast(values[1])); - EXPECT_EQ(val3, *reinterpret_cast(values[2])); - } - ExecutionEnvironment executionEnvironment; - std::unique_ptr mockProgram; - - char val1 = 5; - uint16_t val2 = 50; - int val3 = 500; - const void *const *values; -}; - -TEST_F(UpdateSpecConstantsTest, givenNewSpecConstValueWhenUpdateSpecializationConstantThenProperValueIsUpdated) { - int newSpecConstVal3 = 5000; - - auto ret = mockProgram->updateSpecializationConstant(3, sizeof(int), &newSpecConstVal3); - - EXPECT_EQ(CL_SUCCESS, ret); - EXPECT_EQ(val1, *reinterpret_cast(values[0])); - EXPECT_EQ(val2, *reinterpret_cast(values[1])); - EXPECT_EQ(newSpecConstVal3, *reinterpret_cast(values[2])); -} - -TEST_F(UpdateSpecConstantsTest, givenNewSpecConstValueWithUnproperSizeWhenUpdateSpecializationConstantThenErrorIsReturned) { - int newSpecConstVal3 = 5000; - - auto ret = mockProgram->updateSpecializationConstant(3, 10 * sizeof(int), &newSpecConstVal3); - - EXPECT_EQ(CL_INVALID_VALUE, ret); - EXPECT_EQ(val1, *reinterpret_cast(values[0])); - EXPECT_EQ(val2, *reinterpret_cast(values[1])); - EXPECT_EQ(val3, *reinterpret_cast(values[2])); -} - -TEST_F(UpdateSpecConstantsTest, givenNewSpecConstValueWithUnproperIdAndSizeWhenUpdateSpecializationConstantThenErrorIsReturned) { - int newSpecConstVal3 = 5000; - - auto ret = mockProgram->updateSpecializationConstant(4, sizeof(int), &newSpecConstVal3); - - EXPECT_EQ(CL_INVALID_SPEC_ID, ret); - EXPECT_EQ(val1, *reinterpret_cast(values[0])); - EXPECT_EQ(val2, *reinterpret_cast(values[1])); - EXPECT_EQ(val3, *reinterpret_cast(values[2])); -} - TEST(TranslationOutput, giveNonEmptyPointerAndSizeMakeCopyWillCloneInputData) { MockCIFBuffer src; src.data.assign({2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37}); diff --git a/offline_compiler/CMakeLists.txt b/offline_compiler/CMakeLists.txt index c548d7a6c8..ac4d052e82 100644 --- a/offline_compiler/CMakeLists.txt +++ b/offline_compiler/CMakeLists.txt @@ -25,7 +25,7 @@ set(CLOC_SRCS_LIB ${NEO_SOURCE_DIR}/offline_compiler/multi_command.h ${NEO_SOURCE_DIR}/offline_compiler/options.cpp ${NEO_SOURCE_DIR}/offline_compiler/${BRANCH_DIR_SUFFIX}/extra_settings.cpp - ${NEO_SOURCE_DIR}/runtime/compiler_interface/create_main.cpp + ${NEO_SOURCE_DIR}/core/compiler_interface/create_main.cpp ${NEO_SOURCE_DIR}/runtime/helpers/hw_info.cpp ${NEO_SOURCE_DIR}/runtime/platform/extensions.cpp ${NEO_SOURCE_DIR}/runtime/platform/extensions.h diff --git a/runtime/built_ins/built_ins.cpp b/runtime/built_ins/built_ins.cpp index e226786b46..da3d776222 100644 --- a/runtime/built_ins/built_ins.cpp +++ b/runtime/built_ins/built_ins.cpp @@ -7,13 +7,13 @@ #include "runtime/built_ins/built_ins.h" +#include "core/compiler_interface/compiler_interface.h" #include "core/helpers/basic_math.h" #include "core/helpers/debug_helpers.h" #include "runtime/built_ins/aux_translation_builtin.h" #include "runtime/built_ins/built_ins.inl" #include "runtime/built_ins/sip.h" #include "runtime/built_ins/vme_dispatch_builder.h" -#include "runtime/compiler_interface/compiler_interface.h" #include "runtime/helpers/built_ins_helper.h" #include "runtime/helpers/convert_color.h" #include "runtime/helpers/dispatch_info_builder.h" diff --git a/runtime/compiler_interface/CMakeLists.txt b/runtime/compiler_interface/CMakeLists.txt index cf7b3c645f..56b501bd35 100644 --- a/runtime/compiler_interface/CMakeLists.txt +++ b/runtime/compiler_interface/CMakeLists.txt @@ -6,12 +6,8 @@ set(RUNTIME_SRCS_COMPILER_INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt - ${CMAKE_CURRENT_SOURCE_DIR}/compiler_interface.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/compiler_interface.h ${CMAKE_CURRENT_SOURCE_DIR}/compiler_options.cpp ${CMAKE_CURRENT_SOURCE_DIR}/compiler_options.h - ${CMAKE_CURRENT_SOURCE_DIR}/compiler_interface.inl - ${CMAKE_CURRENT_SOURCE_DIR}/create_main.cpp ${CMAKE_CURRENT_SOURCE_DIR}/default_cl_cache_config.cpp ) diff --git a/runtime/context/context.cpp b/runtime/context/context.cpp index 20df1d2978..38f1c9e96f 100644 --- a/runtime/context/context.cpp +++ b/runtime/context/context.cpp @@ -7,13 +7,13 @@ #include "runtime/context/context.h" +#include "core/compiler_interface/compiler_interface.h" #include "core/helpers/ptr_math.h" #include "core/helpers/string.h" #include "core/memory_manager/unified_memory_manager.h" #include "runtime/built_ins/built_ins.h" #include "runtime/command_queue/command_queue.h" #include "runtime/command_stream/command_stream_receiver.h" -#include "runtime/compiler_interface/compiler_interface.h" #include "runtime/device/device.h" #include "runtime/device_queue/device_queue.h" #include "runtime/gtpin/gtpin_notify.h" diff --git a/runtime/execution_environment/execution_environment.cpp b/runtime/execution_environment/execution_environment.cpp index e7248fccae..f70feea654 100644 --- a/runtime/execution_environment/execution_environment.cpp +++ b/runtime/execution_environment/execution_environment.cpp @@ -7,13 +7,13 @@ #include "runtime/execution_environment/execution_environment.h" +#include "core/compiler_interface/compiler_interface.h" #include "core/memory_manager/memory_operations_handler.h" #include "runtime/aub/aub_center.h" #include "runtime/built_ins/built_ins.h" #include "runtime/built_ins/sip.h" #include "runtime/command_stream/command_stream_receiver.h" #include "runtime/command_stream/tbx_command_stream_receiver_hw.h" -#include "runtime/compiler_interface/compiler_interface.h" #include "runtime/compiler_interface/default_cl_cache_config.h" #include "runtime/gmm_helper/gmm_helper.h" #include "runtime/helpers/hw_helper.h" diff --git a/runtime/platform/platform.cpp b/runtime/platform/platform.cpp index e8a6fcaad4..39e395d491 100644 --- a/runtime/platform/platform.cpp +++ b/runtime/platform/platform.cpp @@ -7,11 +7,11 @@ #include "platform.h" +#include "core/compiler_interface/compiler_interface.h" #include "core/helpers/debug_helpers.h" #include "core/helpers/string.h" #include "runtime/api/api.h" #include "runtime/command_stream/command_stream_receiver.h" -#include "runtime/compiler_interface/compiler_interface.h" #include "runtime/device/root_device.h" #include "runtime/event/async_events_handler.h" #include "runtime/execution_environment/execution_environment.h" diff --git a/runtime/program/build.cpp b/runtime/program/build.cpp index a7559b10aa..6efa6a8ce0 100644 --- a/runtime/program/build.cpp +++ b/runtime/program/build.cpp @@ -5,18 +5,17 @@ * */ +#include "core/compiler_interface/compiler_interface.h" #include "core/utilities/time_measure_wrapper.h" -#include "runtime/compiler_interface/compiler_interface.h" #include "runtime/compiler_interface/compiler_options.h" #include "runtime/device/device.h" #include "runtime/gtpin/gtpin_notify.h" #include "runtime/helpers/validators.h" #include "runtime/os_interface/debug_settings_manager.h" #include "runtime/platform/platform.h" +#include "runtime/program/program.h" #include "runtime/source_level_debugger/source_level_debugger.h" -#include "program.h" - #include namespace NEO { diff --git a/runtime/program/compile.cpp b/runtime/program/compile.cpp index c46bcf0a36..387512063a 100644 --- a/runtime/program/compile.cpp +++ b/runtime/program/compile.cpp @@ -5,8 +5,8 @@ * */ +#include "core/compiler_interface/compiler_interface.h" #include "core/elf/writer.h" -#include "runtime/compiler_interface/compiler_interface.h" #include "runtime/compiler_interface/compiler_options.h" #include "runtime/device/device.h" #include "runtime/helpers/validators.h" diff --git a/runtime/program/link.cpp b/runtime/program/link.cpp index 47b9f35aae..878ee68a7e 100644 --- a/runtime/program/link.cpp +++ b/runtime/program/link.cpp @@ -5,8 +5,8 @@ * */ +#include "core/compiler_interface/compiler_interface.h" #include "core/elf/writer.h" -#include "runtime/compiler_interface/compiler_interface.h" #include "runtime/compiler_interface/compiler_options.h" #include "runtime/device/device.h" #include "runtime/helpers/validators.h" diff --git a/runtime/program/program.cpp b/runtime/program/program.cpp index d62572a255..394ca9f091 100644 --- a/runtime/program/program.cpp +++ b/runtime/program/program.cpp @@ -7,12 +7,12 @@ #include "program.h" +#include "core/compiler_interface/compiler_interface.h" #include "core/elf/writer.h" #include "core/helpers/debug_helpers.h" #include "core/helpers/string.h" #include "core/memory_manager/unified_memory_manager.h" #include "runtime/command_stream/command_stream_receiver.h" -#include "runtime/compiler_interface/compiler_interface.h" #include "runtime/context/context.h" #include "runtime/device/device.h" #include "runtime/helpers/hw_helper.h" diff --git a/runtime/program/program.h b/runtime/program/program.h index 64643300e5..28dc0f7ed7 100644 --- a/runtime/program/program.h +++ b/runtime/program/program.h @@ -6,12 +6,12 @@ */ #pragma once +#include "core/compiler_interface/compiler_interface.h" #include "core/compiler_interface/linker.h" #include "core/elf/reader.h" #include "core/elf/writer.h" #include "core/helpers/stdio.h" #include "runtime/api/cl_types.h" -#include "runtime/compiler_interface/compiler_interface.h" #include "runtime/helpers/base_object.h" #include "runtime/helpers/string_helpers.h" #include "runtime/program/block_kernel_manager.h" diff --git a/unit_tests/api/cl_build_program_tests.inl b/unit_tests/api/cl_build_program_tests.inl index b885b21a63..ac9c442090 100644 --- a/unit_tests/api/cl_build_program_tests.inl +++ b/unit_tests/api/cl_build_program_tests.inl @@ -5,8 +5,8 @@ * */ +#include "core/compiler_interface/compiler_interface.h" #include "core/helpers/file_io.h" -#include "runtime/compiler_interface/compiler_interface.h" #include "runtime/context/context.h" #include "runtime/device/device.h" #include "runtime/program/program.h" diff --git a/unit_tests/api/cl_compile_program_tests.inl b/unit_tests/api/cl_compile_program_tests.inl index 5c4219743a..8d194d3ac3 100644 --- a/unit_tests/api/cl_compile_program_tests.inl +++ b/unit_tests/api/cl_compile_program_tests.inl @@ -5,8 +5,8 @@ * */ +#include "core/compiler_interface/compiler_interface.h" #include "core/helpers/file_io.h" -#include "runtime/compiler_interface/compiler_interface.h" #include "runtime/context/context.h" #include "runtime/helpers/options.h" #include "unit_tests/helpers/kernel_binary_helper.h" diff --git a/unit_tests/api/cl_create_program_with_built_in_kernels_tests.cpp b/unit_tests/api/cl_create_program_with_built_in_kernels_tests.cpp index 2656634384..2b89d2d4bc 100644 --- a/unit_tests/api/cl_create_program_with_built_in_kernels_tests.cpp +++ b/unit_tests/api/cl_create_program_with_built_in_kernels_tests.cpp @@ -5,8 +5,8 @@ * */ +#include "core/compiler_interface/compiler_interface.h" #include "runtime/built_ins/built_ins.h" -#include "runtime/compiler_interface/compiler_interface.h" #include "runtime/context/context.h" #include "runtime/device/device.h" #include "runtime/helpers/base_object.h" diff --git a/unit_tests/api/cl_get_kernel_arg_info_tests.inl b/unit_tests/api/cl_get_kernel_arg_info_tests.inl index 7fdd612819..ff822d5807 100644 --- a/unit_tests/api/cl_get_kernel_arg_info_tests.inl +++ b/unit_tests/api/cl_get_kernel_arg_info_tests.inl @@ -5,8 +5,8 @@ * */ +#include "core/compiler_interface/compiler_interface.h" #include "core/helpers/file_io.h" -#include "runtime/compiler_interface/compiler_interface.h" #include "runtime/context/context.h" #include "runtime/device/device.h" #include "runtime/helpers/options.h" diff --git a/unit_tests/api/cl_get_kernel_info_tests.inl b/unit_tests/api/cl_get_kernel_info_tests.inl index fc2f00718d..b60c9a0dd9 100644 --- a/unit_tests/api/cl_get_kernel_info_tests.inl +++ b/unit_tests/api/cl_get_kernel_info_tests.inl @@ -5,8 +5,8 @@ * */ +#include "core/compiler_interface/compiler_interface.h" #include "core/helpers/file_io.h" -#include "runtime/compiler_interface/compiler_interface.h" #include "runtime/context/context.h" #include "runtime/device/device.h" #include "runtime/helpers/options.h" diff --git a/unit_tests/api/cl_get_kernel_work_group_info_tests.inl b/unit_tests/api/cl_get_kernel_work_group_info_tests.inl index 33eeeae2b5..8c50328e01 100644 --- a/unit_tests/api/cl_get_kernel_work_group_info_tests.inl +++ b/unit_tests/api/cl_get_kernel_work_group_info_tests.inl @@ -5,8 +5,8 @@ * */ +#include "core/compiler_interface/compiler_interface.h" #include "core/helpers/file_io.h" -#include "runtime/compiler_interface/compiler_interface.h" #include "runtime/device/device.h" #include "runtime/helpers/options.h" #include "unit_tests/helpers/kernel_binary_helper.h" diff --git a/unit_tests/api/cl_get_mem_object_info_tests.inl b/unit_tests/api/cl_get_mem_object_info_tests.inl index 67110aafef..d7e0d0f1a9 100644 --- a/unit_tests/api/cl_get_mem_object_info_tests.inl +++ b/unit_tests/api/cl_get_mem_object_info_tests.inl @@ -5,8 +5,8 @@ * */ +#include "core/compiler_interface/compiler_interface.h" #include "core/helpers/file_io.h" -#include "runtime/compiler_interface/compiler_interface.h" #include "runtime/context/context.h" #include "runtime/device/device.h" #include "runtime/helpers/options.h" diff --git a/unit_tests/api/cl_get_program_build_info_tests.inl b/unit_tests/api/cl_get_program_build_info_tests.inl index 7877048d97..3a8a34a895 100644 --- a/unit_tests/api/cl_get_program_build_info_tests.inl +++ b/unit_tests/api/cl_get_program_build_info_tests.inl @@ -5,8 +5,8 @@ * */ +#include "core/compiler_interface/compiler_interface.h" #include "core/helpers/file_io.h" -#include "runtime/compiler_interface/compiler_interface.h" #include "runtime/context/context.h" #include "runtime/device/device.h" #include "runtime/helpers/options.h" diff --git a/unit_tests/api/cl_get_program_info_tests.inl b/unit_tests/api/cl_get_program_info_tests.inl index 312b0466e0..7aa53989ff 100644 --- a/unit_tests/api/cl_get_program_info_tests.inl +++ b/unit_tests/api/cl_get_program_info_tests.inl @@ -5,8 +5,8 @@ * */ +#include "core/compiler_interface/compiler_interface.h" #include "core/helpers/file_io.h" -#include "runtime/compiler_interface/compiler_interface.h" #include "runtime/context/context.h" #include "runtime/device/device.h" #include "runtime/helpers/options.h" diff --git a/unit_tests/api/cl_link_program_tests.inl b/unit_tests/api/cl_link_program_tests.inl index 10ffbaa781..7c9757aff9 100644 --- a/unit_tests/api/cl_link_program_tests.inl +++ b/unit_tests/api/cl_link_program_tests.inl @@ -5,8 +5,8 @@ * */ +#include "core/compiler_interface/compiler_interface.h" #include "core/helpers/file_io.h" -#include "runtime/compiler_interface/compiler_interface.h" #include "runtime/context/context.h" #include "runtime/helpers/options.h" #include "unit_tests/helpers/test_files.h" diff --git a/unit_tests/compiler_interface/CMakeLists.txt b/unit_tests/compiler_interface/CMakeLists.txt index 512a57a148..97eceae01e 100644 --- a/unit_tests/compiler_interface/CMakeLists.txt +++ b/unit_tests/compiler_interface/CMakeLists.txt @@ -6,7 +6,6 @@ set(IGDRCL_SRCS_tests_compiler_interface ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt - ${CMAKE_CURRENT_SOURCE_DIR}/compiler_interface_tests.cpp ${CMAKE_CURRENT_SOURCE_DIR}/default_cl_cache_config_tests.cpp ) diff --git a/unit_tests/execution_environment/execution_environment_tests.cpp b/unit_tests/execution_environment/execution_environment_tests.cpp index 71b3fa4ea9..7b189ce3c2 100644 --- a/unit_tests/execution_environment/execution_environment_tests.cpp +++ b/unit_tests/execution_environment/execution_environment_tests.cpp @@ -5,12 +5,12 @@ * */ +#include "core/compiler_interface/compiler_interface.h" #include "core/unit_tests/helpers/debug_manager_state_restore.h" #include "core/unit_tests/utilities/destructor_counted.h" #include "runtime/aub/aub_center.h" #include "runtime/built_ins/built_ins.h" #include "runtime/command_stream/preemption.h" -#include "runtime/compiler_interface/compiler_interface.h" #include "runtime/device/device.h" #include "runtime/execution_environment/execution_environment.h" #include "runtime/gmm_helper/gmm_helper.h" diff --git a/unit_tests/mem_obj/image_tests.cpp b/unit_tests/mem_obj/image_tests.cpp index ff41d45e00..cab6d650fb 100644 --- a/unit_tests/mem_obj/image_tests.cpp +++ b/unit_tests/mem_obj/image_tests.cpp @@ -5,10 +5,10 @@ * */ +#include "core/compiler_interface/compiler_interface.h" #include "core/helpers/aligned_memory.h" #include "core/unit_tests/helpers/debug_manager_state_restore.h" #include "runtime/built_ins/built_ins.h" -#include "runtime/compiler_interface/compiler_interface.h" #include "runtime/helpers/mipmap.h" #include "runtime/mem_obj/image.h" #include "runtime/mem_obj/mem_obj_helper.h" diff --git a/unit_tests/mocks/mock_compilers.h b/unit_tests/mocks/mock_compilers.h index c866004127..0cc1c19464 100644 --- a/unit_tests/mocks/mock_compilers.h +++ b/unit_tests/mocks/mock_compilers.h @@ -7,8 +7,7 @@ #pragma once -#include "runtime/compiler_interface/compiler_interface.h" -#include "runtime/execution_environment/execution_environment.h" +#include "core/compiler_interface/compiler_interface.h" #include "unit_tests/mocks/mock_cif.h" #include "ocl_igc_interface/fcl_ocl_device_ctx.h" diff --git a/unit_tests/mocks/mock_context.cpp b/unit_tests/mocks/mock_context.cpp index bdb22dd085..a5c611dcbc 100644 --- a/unit_tests/mocks/mock_context.cpp +++ b/unit_tests/mocks/mock_context.cpp @@ -7,10 +7,10 @@ #include "unit_tests/mocks/mock_context.h" +#include "core/compiler_interface/compiler_interface.h" #include "core/memory_manager/unified_memory_manager.h" #include "runtime/built_ins/built_ins.h" #include "runtime/command_queue/command_queue.h" -#include "runtime/compiler_interface/compiler_interface.h" #include "runtime/memory_manager/deferred_deleter.h" #include "runtime/memory_manager/os_agnostic_memory_manager.h" #include "runtime/sharings/sharing.h" diff --git a/unit_tests/program/CMakeLists.txt b/unit_tests/program/CMakeLists.txt index ad2cde3d7a..08a9e2a557 100644 --- a/unit_tests/program/CMakeLists.txt +++ b/unit_tests/program/CMakeLists.txt @@ -1,5 +1,5 @@ # -# Copyright (C) 2017-2018 Intel Corporation +# Copyright (C) 2017-2019 Intel Corporation # # SPDX-License-Identifier: MIT # @@ -19,6 +19,7 @@ set(IGDRCL_SRCS_tests_program ${CMAKE_CURRENT_SOURCE_DIR}/program_data_tests.cpp ${CMAKE_CURRENT_SOURCE_DIR}/program_from_binary.h ${CMAKE_CURRENT_SOURCE_DIR}/program_nonuniform.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/program_spec_constants_tests.cpp ${CMAKE_CURRENT_SOURCE_DIR}/program_tests.cpp ${CMAKE_CURRENT_SOURCE_DIR}/program_tests.h ${CMAKE_CURRENT_SOURCE_DIR}/program_with_block_kernels_tests.cpp diff --git a/unit_tests/program/program_spec_constants_tests.cpp b/unit_tests/program/program_spec_constants_tests.cpp new file mode 100644 index 0000000000..d427fc5041 --- /dev/null +++ b/unit_tests/program/program_spec_constants_tests.cpp @@ -0,0 +1,92 @@ +/* + * Copyright (C) 2017-2019 Intel Corporation + * + * SPDX-License-Identifier: MIT + * + */ + +#include "core/compiler_interface/compiler_interface.h" +#include "core/compiler_interface/compiler_interface.inl" +#include "core/helpers/file_io.h" +#include "core/unit_tests/helpers/debug_manager_state_restore.h" +#include "runtime/helpers/hw_info.h" +#include "unit_tests/fixtures/device_fixture.h" +#include "unit_tests/global_environment.h" +#include "unit_tests/helpers/test_files.h" +#include "unit_tests/mocks/mock_cif.h" +#include "unit_tests/mocks/mock_compilers.h" +#include "unit_tests/mocks/mock_program.h" + +#include "gmock/gmock.h" + +#include + +using namespace NEO; + +struct UpdateSpecConstantsTest : public ::testing::Test { + void SetUp() override { + mockProgram.reset(new MockProgram(executionEnvironment)); + + mockProgram->specConstantsIds.reset(new MockCIFBuffer()); + mockProgram->specConstantsSizes.reset(new MockCIFBuffer()); + mockProgram->specConstantsValues.reset(new MockCIFBuffer()); + + mockProgram->specConstantsIds->PushBackRawCopy(1); + mockProgram->specConstantsIds->PushBackRawCopy(2); + mockProgram->specConstantsIds->PushBackRawCopy(3); + + mockProgram->specConstantsSizes->PushBackRawCopy(sizeof(char)); + mockProgram->specConstantsSizes->PushBackRawCopy(sizeof(uint16_t)); + mockProgram->specConstantsSizes->PushBackRawCopy(sizeof(int)); + + mockProgram->specConstantsValues->PushBackRawCopy(&val1); + mockProgram->specConstantsValues->PushBackRawCopy(&val2); + mockProgram->specConstantsValues->PushBackRawCopy(&val3); + + values = mockProgram->specConstantsValues->GetMemory(); + + EXPECT_EQ(val1, *reinterpret_cast(values[0])); + EXPECT_EQ(val2, *reinterpret_cast(values[1])); + EXPECT_EQ(val3, *reinterpret_cast(values[2])); + } + ExecutionEnvironment executionEnvironment; + std::unique_ptr mockProgram; + + char val1 = 5; + uint16_t val2 = 50; + int val3 = 500; + const void *const *values; +}; + +TEST_F(UpdateSpecConstantsTest, givenNewSpecConstValueWhenUpdateSpecializationConstantThenProperValueIsUpdated) { + int newSpecConstVal3 = 5000; + + auto ret = mockProgram->updateSpecializationConstant(3, sizeof(int), &newSpecConstVal3); + + EXPECT_EQ(CL_SUCCESS, ret); + EXPECT_EQ(val1, *reinterpret_cast(values[0])); + EXPECT_EQ(val2, *reinterpret_cast(values[1])); + EXPECT_EQ(newSpecConstVal3, *reinterpret_cast(values[2])); +} + +TEST_F(UpdateSpecConstantsTest, givenNewSpecConstValueWithUnproperSizeWhenUpdateSpecializationConstantThenErrorIsReturned) { + int newSpecConstVal3 = 5000; + + auto ret = mockProgram->updateSpecializationConstant(3, 10 * sizeof(int), &newSpecConstVal3); + + EXPECT_EQ(CL_INVALID_VALUE, ret); + EXPECT_EQ(val1, *reinterpret_cast(values[0])); + EXPECT_EQ(val2, *reinterpret_cast(values[1])); + EXPECT_EQ(val3, *reinterpret_cast(values[2])); +} + +TEST_F(UpdateSpecConstantsTest, givenNewSpecConstValueWithUnproperIdAndSizeWhenUpdateSpecializationConstantThenErrorIsReturned) { + int newSpecConstVal3 = 5000; + + auto ret = mockProgram->updateSpecializationConstant(4, sizeof(int), &newSpecConstVal3); + + EXPECT_EQ(CL_INVALID_SPEC_ID, ret); + EXPECT_EQ(val1, *reinterpret_cast(values[0])); + EXPECT_EQ(val2, *reinterpret_cast(values[1])); + EXPECT_EQ(val3, *reinterpret_cast(values[2])); +} diff --git a/unit_tests/program/program_with_block_kernels_tests.cpp b/unit_tests/program/program_with_block_kernels_tests.cpp index c5cc36abe8..9d58d898de 100644 --- a/unit_tests/program/program_with_block_kernels_tests.cpp +++ b/unit_tests/program/program_with_block_kernels_tests.cpp @@ -5,7 +5,7 @@ * */ -#include "runtime/compiler_interface/compiler_interface.h" +#include "core/compiler_interface/compiler_interface.h" #include "runtime/device/device.h" #include "unit_tests/fixtures/context_fixture.h" #include "unit_tests/fixtures/platform_fixture.h" diff --git a/unit_tests/program/program_with_source.h b/unit_tests/program/program_with_source.h index 1943189e08..c522610097 100644 --- a/unit_tests/program/program_with_source.h +++ b/unit_tests/program/program_with_source.h @@ -7,7 +7,7 @@ #pragma once -#include "runtime/compiler_interface/compiler_interface.h" +#include "core/compiler_interface/compiler_interface.h" #include "runtime/helpers/options.h" #include "unit_tests/fixtures/context_fixture.h" #include "unit_tests/fixtures/memory_management_fixture.h"