Skip to content

Commit 5cd7ca4

Browse files
pwilmaCompute-Runtime-Automation
authored andcommitted
Refactoring of internal options extraction
Change-Id: Ice53746e696ba6de5bb2c901e713594ee90bf99c Signed-off-by: Pawel Wilma <[email protected]>
1 parent 7d93fed commit 5cd7ca4

File tree

7 files changed

+58
-9
lines changed

7 files changed

+58
-9
lines changed

runtime/program/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ set(RUNTIME_SRCS_PROGRAM
1414
${CMAKE_CURRENT_SOURCE_DIR}/create.inl
1515
${CMAKE_CURRENT_SOURCE_DIR}/get_info.cpp
1616
${CMAKE_CURRENT_SOURCE_DIR}/heap_info.h
17+
${CMAKE_CURRENT_SOURCE_DIR}${BRANCH_DIR_SUFFIX}/internal_options.cpp
1718
${CMAKE_CURRENT_SOURCE_DIR}/kernel_arg_info.h
1819
${CMAKE_CURRENT_SOURCE_DIR}/kernel_info.cpp
1920
${CMAKE_CURRENT_SOURCE_DIR}/kernel_info.h

runtime/program/build.cpp

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,7 @@ cl_int Program::build(
5656
buildStatus = CL_BUILD_IN_PROGRESS;
5757

5858
options = (buildOptions) ? buildOptions : "";
59-
std::string reraStr = "-cl-intel-gtpin-rera";
60-
size_t pos = options.find(reraStr);
61-
if (pos != std::string::npos) {
62-
// build option "-cl-intel-gtpin-rera" is present, move it to internalOptions
63-
size_t reraLen = reraStr.length();
64-
options.erase(pos, reraLen);
65-
internalOptions.append(reraStr);
66-
internalOptions.append(" ");
67-
}
59+
extractInternalOptions(options);
6860

6961
CompilerInterface *pCompilerInterface = this->executionEnvironment.getCompilerInterface();
7062
if (!pCompilerInterface) {
@@ -176,4 +168,15 @@ cl_int Program::build(
176168

177169
return retVal;
178170
}
171+
172+
void Program::extractInternalOptions(std::string &options) {
173+
for (auto &optionString : internalOptionsToExtract) {
174+
size_t pos = options.find(optionString);
175+
if (pos != std::string::npos) {
176+
options.erase(pos, optionString.length());
177+
internalOptions.append(optionString);
178+
internalOptions.append(" ");
179+
}
180+
}
181+
}
179182
} // namespace OCLRT

runtime/program/internal_options.cpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
/*
2+
* Copyright (C) 2017-2018 Intel Corporation
3+
*
4+
* SPDX-License-Identifier: MIT
5+
*
6+
*/
7+
8+
#include "runtime/program/program.h"
9+
#include <vector>
10+
11+
namespace OCLRT {
12+
const std::vector<std::string> Program::internalOptionsToExtract = {"-cl-intel-gtpin-rera"};
13+
};

runtime/program/program.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -265,6 +265,8 @@ class Program : public BaseObject<_cl_program> {
265265
void updateNonUniformFlag();
266266
void updateNonUniformFlag(const Program **inputProgram, size_t numInputPrograms);
267267

268+
void extractInternalOptions(std::string &options);
269+
268270
static const std::string clOptNameClVer;
269271
static const std::string clOptNameUniformWgs;
270272
// clang-format off
@@ -302,6 +304,7 @@ class Program : public BaseObject<_cl_program> {
302304
std::string sourceCode;
303305
std::string options;
304306
std::string internalOptions;
307+
static const std::vector<std::string> internalOptionsToExtract;
305308
std::string hashFileName;
306309
std::string hashFilePath;
307310

unit_tests/mocks/mock_program.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,10 @@ class MockProgram : public Program {
125125

126126
Device *getDevicePtr() { return this->pDevice; }
127127

128+
void extractInternalOptionsForward(std::string &buildOptions) {
129+
extractInternalOptions(buildOptions);
130+
}
131+
128132
bool contextSet = false;
129133
};
130134

unit_tests/program/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,3 +26,4 @@ set(IGDRCL_SRCS_tests_program
2626
${CMAKE_CURRENT_SOURCE_DIR}/program_with_source.h
2727
)
2828
target_sources(igdrcl_tests PRIVATE ${IGDRCL_SRCS_tests_program})
29+
add_subdirectories()

unit_tests/program/program_tests.cpp

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2903,3 +2903,27 @@ TEST_F(ProgramTests, givenProgramWithSpirvWhenRebuildProgramIsCalledThenSpirvPat
29032903
EXPECT_EQ(sizeof(spirv), spvSectionDataSize);
29042904
EXPECT_EQ(0, memcmp(spirv, spvSectionData, spvSectionDataSize));
29052905
}
2906+
2907+
TEST_F(ProgramTests, givenProgramWhenInternalOptionsArePassedThenTheyAreRemovedFromBuildOptions) {
2908+
ExecutionEnvironment executionEnvironment;
2909+
MockProgram pProgram(executionEnvironment);
2910+
pProgram.getInternalOptions().erase();
2911+
EXPECT_EQ(nullptr, pProgram.getDevicePtr());
2912+
const char *internalOption = "-cl-intel-gtpin-rera";
2913+
std::string buildOptions(internalOption);
2914+
pProgram.extractInternalOptionsForward(buildOptions);
2915+
EXPECT_EQ(0u, buildOptions.length());
2916+
EXPECT_TRUE(pProgram.getInternalOptions() == std::string(internalOption) + " ");
2917+
}
2918+
2919+
TEST_F(ProgramTests, givenProgramWhenUnknownInternalOptionsArePassedThenTheyAreNotRemovedFromBuildOptions) {
2920+
ExecutionEnvironment executionEnvironment;
2921+
MockProgram pProgram(executionEnvironment);
2922+
pProgram.getInternalOptions().erase();
2923+
EXPECT_EQ(nullptr, pProgram.getDevicePtr());
2924+
const char *internalOption = "-unknown-internal-options-123";
2925+
std::string buildOptions(internalOption);
2926+
pProgram.extractInternalOptionsForward(buildOptions);
2927+
EXPECT_EQ(0u, pProgram.getInternalOptions().length());
2928+
EXPECT_TRUE(buildOptions == internalOption);
2929+
}

0 commit comments

Comments
 (0)