P4 to Git Change 1385483 by smekhano@stas-mwamba-rocm on 2017/03/14 13:44:00

SWDEV-115974 - ROCm OCL RT: pass OpenCL relaxation options to clang
	Testing: smoke, precheckin, MLOpen/LC
	Reviewed by Evgeny Mankov

Affected files ...

... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/options.cpp#39 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/pal/palprogram.cpp#36 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocprogram.cpp#58 edit
This commit is contained in:
foreman
2017-03-14 13:53:50 -04:00
parent 8eb86b3bda
commit b33adc24e1
3 changed files with 37 additions and 0 deletions
+25
View File
@@ -745,12 +745,14 @@ processOption(int OptDescTableIx, Options& Opts, const std::string& Value,
Opts.setFlag(OID_FiniteMathOnly, 1);
tod = &OptDescTable[OID_FiniteMathOnly];
(void)setOptionVariable (tod, ovars, (int64_t)1, NULL);
Opts.clangOptions.push_back("-cl-finite-math-only");
break;
case OID_NoSignedZeros:
Opts.setFlag(OID_NoSignedZeros, 1);
tod = &OptDescTable[OID_NoSignedZeros];
(void)setOptionVariable (tod, ovars, (int64_t)1, NULL);
Opts.clangOptions.push_back("-cl-no-signed-zeros");
break;
case OID_FastRelaxedMath:
@@ -767,6 +769,7 @@ processOption(int OptDescTableIx, Options& Opts, const std::string& Value,
Opts.clcOptions.append(" -D__FAST_RELAXED_MATH__=1");
Opts.clangOptions.push_back("-D__FAST_RELAXED_MATH__=1");
Opts.clangOptions.push_back("-cl-fast-relaxed-math");
// fall-through to handle UnsafeMathOpt
case OID_UnsafeMathOpt:
@@ -780,6 +783,28 @@ processOption(int OptDescTableIx, Options& Opts, const std::string& Value,
Opts.setFlag(OID_MadEnable, 1);
tod = &OptDescTable[OID_MadEnable];
(void)setOptionVariable (tod, ovars, (int64_t)1, NULL);
Opts.clangOptions.push_back("-cl-unsafe-math-optimizations");
break;
case OID_DenormsAreZero:
Opts.setFlag(OID_DenormsAreZero, 1);
tod = &OptDescTable[OID_DenormsAreZero];
(void)setOptionVariable (tod, ovars, (int64_t)1, NULL);
Opts.clangOptions.push_back("-cl-denorms-are-zero");
break;
case OID_StricAliasing:
Opts.setFlag(OID_StricAliasing, 1);
tod = &OptDescTable[OID_StricAliasing];
(void)setOptionVariable (tod, ovars, (int64_t)1, NULL);
Opts.clangOptions.push_back("-cl-strict-aliasing");
break;
case OID_MadEnable:
Opts.setFlag(OID_MadEnable, 1);
tod = &OptDescTable[OID_MadEnable];
(void)setOptionVariable (tod, ovars, (int64_t)1, NULL);
Opts.clangOptions.push_back("-cl-mad-enable");
break;
case OID_EnableDebug:
+6
View File
@@ -1504,6 +1504,12 @@ LightningProgram::linkImpl(amd::option::Options *options)
optLevel << "-O" << options->oVariables->OptLevel;
codegenOptions.append(" ").append(optLevel.str());
// Pass clang options
std::ostringstream ostrstr;
std::copy(options->clangOptions.begin(), options->clangOptions.end(),
std::ostream_iterator<std::string>(ostrstr, " "));
codegenOptions.append(" ").append(ostrstr.str());
// Set whole program mode
codegenOptions.append(" -mllvm -amdgpu-internalize-symbols");
@@ -813,6 +813,12 @@ HSAILProgram::linkImpl_LC(amd::option::Options *options)
optLevel << "-O" << options->oVariables->OptLevel;
codegenOptions.append(" ").append(optLevel.str());
// Pass clang options
std::ostringstream ostrstr;
std::copy(options->clangOptions.begin(), options->clangOptions.end(),
std::ostream_iterator<std::string>(ostrstr, " "));
codegenOptions.append(" ").append(ostrstr.str());
// Set whole program mode
codegenOptions.append(" -mllvm -amdgpu-internalize-symbols");