================
@@ -77,6 +79,82 @@ class RocmInstallationDetector {
           SPACKReleaseStr(SPACKReleaseStr.str()) {}
   };
 
+  struct CommonBitcodeLibsPreferences {
+    CommonBitcodeLibsPreferences(const Driver &D,
+                                 const llvm::opt::ArgList &DriverArgs,
+                                 StringRef GPUArch,
+                                 const Action::OffloadKind 
DeviceOffloadingKind,
+                                 const bool NeedsASanRT)
+        : ABIVer(DeviceLibABIVersion::fromCodeObjectVersion(
+              tools::getAMDGPUCodeObjectVersion(D, DriverArgs))) {
+      const auto Kind = llvm::AMDGPU::parseArchAMDGCN(GPUArch);
+      const unsigned ArchAttr = llvm::AMDGPU::getArchAttrAMDGCN(Kind);
+
+      IsOpenMP = DeviceOffloadingKind == Action::OFK_OpenMP;
+
+      const bool HasWave32 = (ArchAttr & llvm::AMDGPU::FEATURE_WAVE32);
+      Wave64 = !HasWave32 ||
+               DriverArgs.hasFlag(options::OPT_mwavefrontsize64,
+                                  options::OPT_mno_wavefrontsize64, false);
+
+      const bool IsKnownOffloading =
+          DeviceOffloadingKind == Action::OFK_OpenMP ||
+          DeviceOffloadingKind == Action::OFK_HIP;
+
+      // Default to enabling f32 denormals on subtargets where fma is fast with
+      // denormals
+      const bool DefaultDAZ =
+          (Kind == llvm::AMDGPU::GK_NONE)
+              ? false
+              : !((ArchAttr & llvm::AMDGPU::FEATURE_FAST_FMA_F32) &&
+                  (ArchAttr & llvm::AMDGPU::FEATURE_FAST_DENORMAL_F32));
+      // TODO: There are way too many flags that change this. Do we need to
+      // check them all?
+      DAZ = IsKnownOffloading
+                ? DriverArgs.hasFlag(
+                      options::OPT_fgpu_flush_denormals_to_zero,
+                      options::OPT_fno_gpu_flush_denormals_to_zero, DefaultDAZ)
+                : DriverArgs.hasArg(options::OPT_cl_denorms_are_zero) ||
+                      DefaultDAZ;
+
+      FiniteOnly = DriverArgs.hasArg(options::OPT_cl_finite_math_only) ||
----------------
jhuber6 wrote:

Yeah, I just remember @arsenm removing a few of these

https://github.com/llvm/llvm-project/pull/149294
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to