Skip to content

Commit 9b2fd1a

Browse files
authored
[flang][OpenMP] Bump default OpenMP version to 3.1 (#133745)
Precise OpenMP standards support information is being documented in #132707 Flang now has good support for OpenMP Version 3.1 and earlier.
1 parent 3f8bfc9 commit 9b2fd1a

File tree

8 files changed

+16
-16
lines changed

8 files changed

+16
-16
lines changed

clang/include/clang/Driver/Options.td

+1-1
Original file line numberDiff line numberDiff line change
@@ -3591,7 +3591,7 @@ def fopenmp_version_EQ : Joined<["-"], "fopenmp-version=">, Group<f_Group>,
35913591
Flags<[NoArgumentUnused]>,
35923592
Visibility<[ClangOption, CC1Option, FlangOption, FC1Option]>,
35933593
HelpText<OpenMPVersionHelp<"Clang", "51">.str>,
3594-
HelpTextForVariants<[FlangOption, FC1Option], OpenMPVersionHelp<"Flang", "11">.str>;
3594+
HelpTextForVariants<[FlangOption, FC1Option], OpenMPVersionHelp<"Flang", "31">.str>;
35953595
defm openmp_extensions: BoolFOption<"openmp-extensions",
35963596
LangOpts<"OpenMPExtensions">, DefaultTrue,
35973597
PosFlag<SetTrue, [NoArgumentUnused], [ClangOption, CC1Option],

flang/include/flang/Support/LangOptions.def

+1-1
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ LANGOPT(AssociativeMath, 1, false)
3939
/// Allow division operations to be reassociated
4040
LANGOPT(ReciprocalMath, 1, false)
4141
/// Specify version of OpenMP standard
42-
LANGOPT(OpenMPVersion, 32, 0)
42+
LANGOPT(OpenMPVersion, 31, 0)
4343
/// Generate code only for OpenMP target device
4444
LANGOPT(OpenMPIsTargetDevice, 1, false)
4545
/// Generate OpenMP target code only for GPUs

flang/include/flang/Tools/CrossToolHelpers.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ struct OffloadModuleOpts {
165165
bool OpenMPIsTargetDevice = false;
166166
bool OpenMPIsGPU = false;
167167
bool OpenMPForceUSM = false;
168-
uint32_t OpenMPVersion = 11;
168+
uint32_t OpenMPVersion = 31;
169169
std::string OMPHostIRFile = {};
170170
std::vector<llvm::Triple> OMPTargetTriples = {};
171171
bool NoGPULib = false;

flang/lib/Frontend/CompilerInvocation.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -1108,8 +1108,8 @@ static bool parseOpenMPArgs(CompilerInvocation &res, llvm::opt::ArgList &args,
11081108
unsigned numErrorsBefore = diags.getNumErrors();
11091109
llvm::Triple t(res.getTargetOpts().triple);
11101110

1111-
// By default OpenMP is set to 1.1 version
1112-
res.getLangOpts().OpenMPVersion = 11;
1111+
// By default OpenMP is set to 3.1 version
1112+
res.getLangOpts().OpenMPVersion = 31;
11131113
res.getFrontendOpts().features.Enable(
11141114
Fortran::common::LanguageFeature::OpenMP);
11151115
if (int Version = getLastArgIntValue(

flang/test/Driver/bbc-openmp-version-macro.f90

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
! RUN: bbc -fopenmp -fopenmp-version=51 -o - %s | FileCheck %s --check-prefix=OPENMP-VERSION-51
1414
! RUN: bbc -fopenmp -fopenmp-version=52 -o - %s | FileCheck %s --check-prefix=OPENMP-VERSION-52
1515

16-
! DEFAULT-OPENMP-VERSION: {{.*}} = arith.constant 199911 : i32
16+
! DEFAULT-OPENMP-VERSION: {{.*}} = arith.constant 201107 : i32
1717
! OPENMP-VERSION-11: {{.*}} = arith.constant 199911 : i32
1818
! OPENMP-VERSION-20: {{.*}} = arith.constant 200011 : i32
1919
! OPENMP-VERSION-25: {{.*}} = arith.constant 200505 : i32

flang/test/Driver/flang-openmp-version-macro.f90

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
! RUN: %flang_fc1 -fopenmp -fopenmp-version=51 -cpp -E %s | FileCheck %s --check-prefix=OPENMP-VERSION-51
1414
! RUN: %flang_fc1 -fopenmp -fopenmp-version=52 -cpp -E %s | FileCheck %s --check-prefix=OPENMP-VERSION-52
1515

16-
! DEFAULT-OPENMP-VERSION: integer :: var1 = 199911
16+
! DEFAULT-OPENMP-VERSION: integer :: var1 = 201107
1717
! OPENMP-VERSION-11: integer :: var1 = 199911
1818
! OPENMP-VERSION-20: integer :: var1 = 200011
1919
! OPENMP-VERSION-25: integer :: var1 = 200505

flang/test/Lower/OpenMP/rtl-flags.f90

+8-8
Original file line numberDiff line numberDiff line change
@@ -20,20 +20,20 @@
2020
!RUN: bbc -emit-hlfir -fopenmp -fopenmp-assume-no-nested-parallelism -fopenmp-is-target-device -o - %s | FileCheck %s --check-prefix=NEST-PAR-DEVICE-FIR
2121
!RUN: bbc -emit-hlfir -fopenmp -fopenmp-target-debug=1 -fopenmp-assume-teams-oversubscription -fopenmp-assume-no-nested-parallelism -fopenmp-assume-threads-oversubscription -fopenmp-assume-no-thread-state -fopenmp-is-target-device -o - %s | FileCheck %s --check-prefix=ALL-DEVICE-FIR
2222

23-
!DEFAULT-DEVICE-FIR: module attributes {{{.*}}omp.flags = #omp.flags<openmp_device_version = 11>
23+
!DEFAULT-DEVICE-FIR: module attributes {{{.*}}omp.flags = #omp.flags<openmp_device_version = 31>
2424
!DEFAULT-DEVICE-FIR-SAME: omp.is_target_device = true
2525
!DEFAULT-DEVICE-FIR-VERSION: module attributes {{{.*}}omp.flags = #omp.flags<openmp_device_version = 45>
2626
!DEFAULT-DEVICE-FIR-VERSION-SAME: omp.is_target_device = true
2727
!DEFAULT-DEVICE-FIR-VERSION-SAME: omp.version = #omp.version<version = 45>
2828
!DEFAULT-HOST-FIR: module attributes {{{.*}}omp.is_target_device = false{{.*}}
2929
!DEFAULT-HOST-FIR-VERSION: module attributes {{{.*}}omp.is_target_device = false
3030
!DEFAULT-HOST-FIR-VERSION-SAME: omp.version = #omp.version<version = 45>
31-
!DBG-DEVICE-FIR: module attributes {{{.*}}omp.flags = #omp.flags<debug_kind = 1, openmp_device_version = 11>
32-
!DBG-EQ-DEVICE-FIR: module attributes {{{.*}}omp.flags = #omp.flags<debug_kind = 111, openmp_device_version = 11>
33-
!TEAMS-OSUB-DEVICE-FIR: module attributes {{{.*}}omp.flags = #omp.flags<assume_teams_oversubscription = true, openmp_device_version = 11>
34-
!THREAD-OSUB-DEVICE-FIR: module attributes {{{.*}}omp.flags = #omp.flags<assume_threads_oversubscription = true, openmp_device_version = 11>
35-
!THREAD-STATE-DEVICE-FIR: module attributes {{{.*}}omp.flags = #omp.flags<assume_no_thread_state = true, openmp_device_version = 11>
36-
!NEST-PAR-DEVICE-FIR: module attributes {{{.*}}omp.flags = #omp.flags<assume_no_nested_parallelism = true, openmp_device_version = 11>
37-
!ALL-DEVICE-FIR: module attributes {{{.*}}omp.flags = #omp.flags<debug_kind = 1, assume_teams_oversubscription = true, assume_threads_oversubscription = true, assume_no_thread_state = true, assume_no_nested_parallelism = true, openmp_device_version = 11>
31+
!DBG-DEVICE-FIR: module attributes {{{.*}}omp.flags = #omp.flags<debug_kind = 1, openmp_device_version = 31>
32+
!DBG-EQ-DEVICE-FIR: module attributes {{{.*}}omp.flags = #omp.flags<debug_kind = 111, openmp_device_version = 31>
33+
!TEAMS-OSUB-DEVICE-FIR: module attributes {{{.*}}omp.flags = #omp.flags<assume_teams_oversubscription = true, openmp_device_version = 31>
34+
!THREAD-OSUB-DEVICE-FIR: module attributes {{{.*}}omp.flags = #omp.flags<assume_threads_oversubscription = true, openmp_device_version = 31>
35+
!THREAD-STATE-DEVICE-FIR: module attributes {{{.*}}omp.flags = #omp.flags<assume_no_thread_state = true, openmp_device_version = 31>
36+
!NEST-PAR-DEVICE-FIR: module attributes {{{.*}}omp.flags = #omp.flags<assume_no_nested_parallelism = true, openmp_device_version = 31>
37+
!ALL-DEVICE-FIR: module attributes {{{.*}}omp.flags = #omp.flags<debug_kind = 1, assume_teams_oversubscription = true, assume_threads_oversubscription = true, assume_no_thread_state = true, assume_no_nested_parallelism = true, openmp_device_version = 31>
3838
subroutine omp_subroutine()
3939
end subroutine omp_subroutine

flang/tools/bbc/bbc.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ static llvm::cl::list<std::string> targetTriplesOpenMP(
169169
static llvm::cl::opt<uint32_t>
170170
setOpenMPVersion("fopenmp-version",
171171
llvm::cl::desc("OpenMP standard version"),
172-
llvm::cl::init(11));
172+
llvm::cl::init(31));
173173

174174
static llvm::cl::opt<uint32_t> setOpenMPTargetDebug(
175175
"fopenmp-target-debug",

0 commit comments

Comments
 (0)