浏览代码

FindOpenMP: Use -Qiopenmp instead of -fiopenmp for IntelLLVM on Windows

The Windows driver does not like the `-f` form of this option.

Note that we prefer `-Qiopenmp/-fiopenmp` over `-Qopenmp/-fopenmp` in
order to generate LLVM IR with parallelization information, which the
backend uses to generate parallelized code.

Signed-off-by: William R. Dieter <[email protected]>
William R. Dieter 4 年之前
父节点
当前提交
6fd014a4b6
共有 1 个文件被更改,包括 6 次插入1 次删除
  1. 6 1
      Modules/FindOpenMP.cmake

+ 6 - 1
Modules/FindOpenMP.cmake

@@ -113,7 +113,12 @@ function(_OPENMP_FLAG_CANDIDATES LANG)
     else()
       set(OMP_FLAG_Intel "-qopenmp")
     endif()
-    set(OMP_FLAG_IntelLLVM "-fiopenmp")
+    if(CMAKE_${LANG}_COMPILER_ID STREQUAL "IntelLLVM" AND
+      "x${CMAKE_${LANG}_COMPILER_FRONTEND_VARIANT}" STREQUAL "xMSVC")
+      set(OMP_FLAG_IntelLLVM "-Qiopenmp")
+    else()
+      set(OMP_FLAG_IntelLLVM "-fiopenmp")
+    endif()
     set(OMP_FLAG_MSVC "-openmp")
     set(OMP_FLAG_PathScale "-openmp")
     set(OMP_FLAG_NAG "-openmp")