[PATCH] D48493: [HIP] Support flush denorms bitcode

Aaron Enye Shi via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Jun 27 11:29:41 PDT 2018


ashi1 updated this revision to Diff 153140.

https://reviews.llvm.org/D48493

Files:
  lib/Driver/ToolChains/HIP.cpp
  test/Driver/Inputs/hip_dev_lib/irif.amdgcn.bc
  test/Driver/Inputs/hip_dev_lib/ockl.amdgcn.bc
  test/Driver/Inputs/hip_dev_lib/oclc_correctly_rounded_sqrt_on.amdgcn.bc
  test/Driver/Inputs/hip_dev_lib/oclc_daz_opt_off.amdgcn.bc
  test/Driver/Inputs/hip_dev_lib/oclc_daz_opt_on.amdgcn.bc
  test/Driver/Inputs/hip_dev_lib/oclc_finite_only_off.amdgcn.bc
  test/Driver/Inputs/hip_dev_lib/oclc_isa_version_803.amdgcn.bc
  test/Driver/Inputs/hip_dev_lib/oclc_isa_version_900.amdgcn.bc
  test/Driver/Inputs/hip_dev_lib/oclc_unsafe_math_off.amdgcn.bc
  test/Driver/Inputs/hip_dev_lib/ocml.amdgcn.bc
  test/Driver/Inputs/hip_dev_lib/opencl.amdgcn.bc
  test/Driver/hip-toolchain-flush-denorms-off.hip
  test/Driver/hip-toolchain-flush-denorms-on.hip


Index: test/Driver/hip-toolchain-flush-denorms-on.hip
===================================================================
--- /dev/null
+++ test/Driver/hip-toolchain-flush-denorms-on.hip
@@ -0,0 +1,15 @@
+// REQUIRES: clang-driver
+// REQUIRES: x86-registered-target
+// REQUIRES: amdgpu-registered-target
+
+// RUN: %clang -### -target x86_64-linux-gnu \
+// RUN:   -x hip --cuda-gpu-arch=gfx900 \
+// RUN:   --hip-device-lib-path=%S/Inputs/hip_dev_lib \
+// RUN:   -fcuda-flush-denormals-to-zero \
+// RUN:   %S/Inputs/hip_multiple_inputs/b.hip \
+// RUN: 2>&1 | FileCheck %s
+
+
+// CHECK: [[LLVM_LINK:"*.llvm-link"]]
+// CHECK-SAME: {{.*}} "{{.*}}oclc_daz_opt_on.amdgcn.bc"
+// CHECK-SAME: {{.*}} "-o" "{{.*}}-gfx900-linked-{{.*bc}}"
Index: test/Driver/hip-toolchain-flush-denorms-off.hip
===================================================================
--- /dev/null
+++ test/Driver/hip-toolchain-flush-denorms-off.hip
@@ -0,0 +1,14 @@
+// REQUIRES: clang-driver
+// REQUIRES: x86-registered-target
+// REQUIRES: amdgpu-registered-target
+
+// RUN: %clang -### -target x86_64-linux-gnu \
+// RUN:   -x hip --cuda-gpu-arch=gfx900 \
+// RUN:   --hip-device-lib-path=%S/Inputs/hip_dev_lib \
+// RUN:   %S/Inputs/hip_multiple_inputs/b.hip \
+// RUN: 2>&1 | FileCheck %s
+
+
+// CHECK: [[LLVM_LINK:"*.llvm-link"]]
+// CHECK-SAME: {{.*}} "{{.*}}oclc_daz_opt_off.amdgcn.bc"
+// CHECK-SAME: {{.*}} "-o" "{{.*}}-gfx900-linked-{{.*bc}}"
Index: lib/Driver/ToolChains/HIP.cpp
===================================================================
--- lib/Driver/ToolChains/HIP.cpp
+++ lib/Driver/ToolChains/HIP.cpp
@@ -75,10 +75,16 @@
     std::string ISAVerBC =
         "oclc_isa_version_" + SubArchName.drop_front(3).str() + ".amdgcn.bc";

+    llvm::StringRef FlushDenormalControlBC;
+    if (Args.hasArg(options::OPT_fcuda_flush_denormals_to_zero))
+      FlushDenormalControlBC = "oclc_daz_opt_on.amdgcn.bc";
+    else
+      FlushDenormalControlBC = "oclc_daz_opt_off.amdgcn.bc";
+
     BCLibs.append({"hip.amdgcn.bc", "opencl.amdgcn.bc",
                    "ockl.amdgcn.bc", "irif.amdgcn.bc", "ocml.amdgcn.bc",
                    "oclc_finite_only_off.amdgcn.bc",
-                   "oclc_daz_opt_off.amdgcn.bc",
+                   FlushDenormalControlBC,
                    "oclc_correctly_rounded_sqrt_on.amdgcn.bc",
                    "oclc_unsafe_math_off.amdgcn.bc", ISAVerBC});
   }


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D48493.153140.patch
Type: text/x-patch
Size: 2442 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20180627/28b7862d/attachment.bin>


More information about the cfe-commits mailing list