[flang-commits] [clang] [flang] [FLANG] allow -fopenmp= (PR #86816)

Tom Eccles via flang-commits flang-commits at lists.llvm.org
Wed Mar 27 09:33:58 PDT 2024


================
@@ -764,6 +762,32 @@ void Flang::ConstructJob(Compilation &C, const JobAction &JA,
   // Add other compile options
   addOtherOptions(Args, CmdArgs);
 
+  // Forward flags for OpenMP. We don't do this if the current action is an
+  // device offloading action other than OpenMP.
+  if (Args.hasFlag(options::OPT_fopenmp, options::OPT_fopenmp_EQ,
+                   options::OPT_fno_openmp, false) &&
+      (JA.isDeviceOffloading(Action::OFK_None) ||
+       JA.isDeviceOffloading(Action::OFK_OpenMP))) {
+    switch (D.getOpenMPRuntime(Args)) {
+    case Driver::OMPRT_OMP:
+    case Driver::OMPRT_IOMP5:
+      // Clang can generate useful OpenMP code for these two runtime libraries.
+      CmdArgs.push_back("-fopenmp");
+      Args.AddAllArgs(CmdArgs, options::OPT_fopenmp_version_EQ);
+
+      // FIXME: Clang supports a whole bunch more flags here.
+      break;
+    default:
----------------
tblah wrote:

If OMPRT_GOMP doesn't need `-fopenmp` for some reason then I don't think we understand how it works. Maybe we should prevent its use with flang for now?

https://github.com/llvm/llvm-project/pull/86816


More information about the flang-commits mailing list