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