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:
@@ -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:
|
||||
|
||||
@@ -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");
|
||||
|
||||
|
||||
Reference in New Issue
Block a user