P4 to Git Change 1989679 by gandryey@gera-win10 on 2019/08/27 11:34:19

SWDEV-200422 - Teamcity built OpenCL ignores all options from LC backend
	- Pass LC argument into parseAllOptions()

	http://ocltc.amd.com/reviews/r/17884/

Affected files ...

... //depot/stg/opencl/drivers/opencl/compiler/lib/api/v0_8/acl.cpp#50 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/options.cpp#46 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/options.hpp#22 edit
... //depot/stg/opencl/drivers/opencl/compiler/lib/utils/v0_8/libUtils.cpp#42 edit
... //depot/stg/opencl/drivers/opencl/runtime/device/devprogram.cpp#62 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/program.cpp#103 edit
... //depot/stg/opencl/drivers/opencl/runtime/platform/program.hpp#47 edit


[ROCm/clr commit: 6547f9e31b]
This commit is contained in:
foreman
2019-08-27 11:42:23 -04:00
parent 5e8de3ad46
commit 03a3c1738c
6 changed files with 32 additions and 32 deletions
@@ -636,7 +636,7 @@ getOptionDesc(std::string& options, size_t StartPos, bool IsShortForm,
bool
processOption(int OptDescTableIx, Options& Opts, const std::string& Value,
bool IsPrefixOption, bool IsOffFlag)
bool IsPrefixOption, bool IsOffFlag, bool IsLC)
{
OptionVariables* ovars = Opts.oVariables;
OptionDescriptor* od = &OptDescTable[OptDescTableIx];
@@ -786,9 +786,9 @@ 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");
#if defined(WITH_LIGHTNING_COMPILER) // w/a for SWDEV-116690
Opts.clangOptions.push_back("-cl-fast-relaxed-math");
#endif
if (IsLC) { // w/a for SWDEV-116690
Opts.clangOptions.push_back("-cl-fast-relaxed-math");
}
// fall-through to handle UnsafeMathOpt
case OID_UnsafeMathOpt:
@@ -912,12 +912,12 @@ processOption(int OptDescTableIx, Options& Opts, const std::string& Value,
}
break;
#if defined(WITH_LIGHTNING_COMPILER)
case OID_OptUseNative:
Opts.llvmOptions.append(" -mllvm -amdgpu-use-native=");
Opts.llvmOptions.append(sval);
if (IsLC) {
Opts.llvmOptions.append(" -mllvm -amdgpu-use-native=");
Opts.llvmOptions.append(sval);
}
break;
#endif
case OID_WFComma:
case OID_WBComma:
@@ -940,13 +940,13 @@ processOption(int OptDescTableIx, Options& Opts, const std::string& Value,
}
else if (((OptionIdentifier)OptDescTableIx) == OID_WBComma) {
Opts.llvmOptions.append(" ");
#if defined(WITH_LIGHTNING_COMPILER)
Opts.llvmOptions.append("-mllvm ");
#endif
if (IsLC) {
Opts.llvmOptions.append("-mllvm ");
}
Opts.llvmOptions.append(sval);
}
else if (((OptionIdentifier)OptDescTableIx) == OID_WHComma) {
Opts.finalizerOptions.push_back(sval);
Opts.finalizerOptions.push_back(sval);
}
}
break;
@@ -1011,7 +1011,7 @@ namespace amd {
namespace option {
bool
parseAllOptions(std::string& options, Options& Opts, bool linkOptsOnly)
parseAllOptions(std::string& options, Options& Opts, bool linkOptsOnly, bool isLC)
{
Opts.origOptionStr = options;
OptionVariables* ovars = Opts.oVariables;
@@ -1162,7 +1162,7 @@ parseAllOptions(std::string& options, Options& Opts, bool linkOptsOnly)
}
if (!processOption(option_ndx, Opts, value, isPrefix_option,
(isPrefix_mno || isPrefix_fno))) {
(isPrefix_mno || isPrefix_fno), isLC)) {
// Keep the optionsLog set in processOption().
std::string tmpStr("Invalid option: ");
tmpStr += options.substr(bpos, (pos == std::string::npos)