[flang-commits] [clang] [flang] [flang][OpenMP] Upstream first part of `do concurrent` mapping (PR #126026)
Kareem Ergawy via flang-commits
flang-commits at lists.llvm.org
Tue Feb 11 22:02:10 PST 2025
================
@@ -352,16 +352,37 @@ bool CodeGenAction::beginSourceFileAction() {
// Add OpenMP-related passes
// WARNING: These passes must be run immediately after the lowering to ensure
// that the FIR is correct with respect to OpenMP operations/attributes.
- if (ci.getInvocation().getFrontendOpts().features.IsEnabled(
- Fortran::common::LanguageFeature::OpenMP)) {
- bool isDevice = false;
+ bool isOpenMPEnabled =
+ ci.getInvocation().getFrontendOpts().features.IsEnabled(
+ Fortran::common::LanguageFeature::OpenMP);
+
+ fir::OpenMPFIRPassPipelineOpts opts;
+
+ using DoConcurrentMappingKind =
+ Fortran::frontend::CodeGenOptions::DoConcurrentMappingKind;
+ opts.doConcurrentMappingKind =
+ ci.getInvocation().getCodeGenOpts().getDoConcurrentMapping();
+
+ if (opts.doConcurrentMappingKind != DoConcurrentMappingKind::DCMK_None &&
+ !isOpenMPEnabled) {
+ unsigned diagID = ci.getDiagnostics().getCustomDiagID(
+ clang::DiagnosticsEngine::Error,
+ "lowering `do concurrent` loops to OpenMP is only supported if "
+ "OpenMP is enabled. Enable OpenMP using `-fopenmp`.");
+ ci.getDiagnostics().Report(diagID);
+ return false;
+ }
----------------
ergawy wrote:
Makes sense. Done.
https://github.com/llvm/llvm-project/pull/126026
More information about the flang-commits
mailing list