From 89175ce61b6ecb72422be197f55ba4ac100eee25 Mon Sep 17 00:00:00 2001 From: foreman Date: Mon, 12 Sep 2016 23:23:59 -0500 Subject: [PATCH] P4 to Git Change 1313578 by lmoriche@lmoriche_opencl_dev on 2016/09/13 00:14:36 SWDEV-94610 - Target features are only needed in the CL->IR stage. The attributes remain on the function, so they should not be set again in the IR->ISA stage. Affected files ... ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/roccompiler.cpp#16 edit ... //depot/stg/opencl/drivers/opencl/runtime/device/rocm/rocprogram.cpp#34 edit [ROCm/clr commit: a1009a5d110bb773876e1e01d4297c627a25239e] --- .../clr/rocclr/runtime/device/rocm/roccompiler.cpp | 10 +++++++++- .../clr/rocclr/runtime/device/rocm/rocprogram.cpp | 11 ++--------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/projects/clr/rocclr/runtime/device/rocm/roccompiler.cpp b/projects/clr/rocclr/runtime/device/rocm/roccompiler.cpp index e29adf0333..c094e473c9 100644 --- a/projects/clr/rocclr/runtime/device/rocm/roccompiler.cpp +++ b/projects/clr/rocclr/runtime/device/rocm/roccompiler.cpp @@ -196,8 +196,16 @@ HSAILProgram::compileImpl_LC( return false; } + // Set fp32-denormals and fp64-denormals + bool fp32Denormals = !options->oVariables->DenormsAreZero + && dev().deviceInfo().gfxipVersion_ >= 900; + + driverOptions.append(" -Xclang -target-feature -Xclang "); + driverOptions.append(fp32Denormals ? "+" : "-") + .append("fp32-denormals,+fp64-denormals"); + // Tokenize the options string into a vector of strings - std::istringstream istrstr(driverOptions + codegenOptions(options)); + std::istringstream istrstr(driverOptions); std::istream_iterator sit(istrstr), end; std::vector params(sit, end); diff --git a/projects/clr/rocclr/runtime/device/rocm/rocprogram.cpp b/projects/clr/rocclr/runtime/device/rocm/rocprogram.cpp index 0ad5db81d1..8347e0b44a 100644 --- a/projects/clr/rocclr/runtime/device/rocm/rocprogram.cpp +++ b/projects/clr/rocclr/runtime/device/rocm/rocprogram.cpp @@ -914,7 +914,7 @@ HSAILProgram::linkImpl_LC(amd::option::Options *options) codegenOptions.append(" ").append(optLevel.str()); // Tokenize the options string into a vector of strings - std::istringstream strstr(codegenOptions + this->codegenOptions(options)); + std::istringstream strstr(codegenOptions); std::istream_iterator sit(strstr), end; std::vector params(sit, end); @@ -1438,14 +1438,7 @@ HSAILProgram::codegenOptions(amd::option::Options* options) { std::string optionsStr; -#if defined(WITH_LIGHTNING_COMPILER) - bool fp32Denormals = !options->oVariables->DenormsAreZero - && dev().deviceInfo().gfxipVersion_ >= 900; - - optionsStr.append(" -Xclang -target-feature -Xclang "); - optionsStr.append(fp32Denormals ? "+" : "-") - .append("fp32-denormals,+fp64-denormals"); -#else // !defined(WITH_LIGHTNING_COMPILER) +#if !defined(WITH_LIGHTNING_COMPILER) if (dev().deviceInfo().gfxipVersion_ < 900) { optionsStr.append(" -cl-denorms-are-zero"); }