From c57ef1bb5bea64c7dd9b341615067f0ad75a6e2e Mon Sep 17 00:00:00 2001
From: foreman
Date: Mon, 27 Jul 2015 08:46:17 -0400
Subject: [PATCH] P4 to Git Change 1174141 by vpykhtin@vpykhtin-HSA on
2015/07/27 08:36:29
ECR #333753 - HSA HLC: --denorms-f32-are-zero flag support
Testing: smoke, presubmit
Reviewed by Brian Sumner, Evgeny Mankov
Affected files ...
... //depot/stg/opencl/drivers/opencl/compiler/lib/backends/common/linker.cpp#127 edit
... //depot/stg/opencl/drivers/opencl/compiler/llvm/lib/Target/HSAIL/BRIGAsmPrinter.cpp#119 edit
... //depot/stg/opencl/drivers/opencl/tests/hsa/src/llc/opt/intrinsics/flush-denorms.cl#1 add
... //depot/stg/opencl/drivers/opencl/tests/hsa/tlst/llc_opt.tlst#38 edit
---
rocclr/compiler/lib/backends/common/linker.cpp | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/rocclr/compiler/lib/backends/common/linker.cpp b/rocclr/compiler/lib/backends/common/linker.cpp
index 9cedf0b0f4..0dd0f09ef8 100644
--- a/rocclr/compiler/lib/backends/common/linker.cpp
+++ b/rocclr/compiler/lib/backends/common/linker.cpp
@@ -111,6 +111,10 @@
#endif
#define DEBUG_TYPE "ocl_linker"
+#if !defined(LEGACY_COMPLIB)
+extern bool HLC_FlushF32Denorms;
+#endif
+
namespace AMDSpir {
extern void replaceTrivialFunc(llvm::Module& M);
}
@@ -641,6 +645,11 @@ amdcl::OCLLinker::link(llvm::Module* input, std::vector &libs)
setFP32RoundDivideSqrt(Options()->oVariables->FP32RoundDivideSqrt);
setUseNative(Options()->oVariables->OptUseNative);
setDenormsAreZero(Options()->oVariables->DenormsAreZero);
+#if !defined(LEGACY_COMPLIB)
+ // TODO: Enable the following line to pass DenormsAreZero option to the HLC
+ // when ready
+ // HLC_FlushF32Denorms = Options()->oVariables->DenormsAreZero;
+#endif
setUniformWorkGroupSize(Options()->oVariables->UniformWorkGroupSize);
setHaveFastFMA32(chip == "Cypress"
|| chip == "Cayman"