r270838 - [OPENMP] Add option '-fopenmp-version=[31|40|45]' allowing choosing
Daniel Sanders via cfe-commits
cfe-commits at lists.llvm.org
Fri May 27 01:46:02 PDT 2016
Thanks. r270962 seems to have fixed the buildbot.
> -----Original Message-----
> From: Daniel Sanders
> Sent: 26 May 2016 16:24
> To: 'Alexey Bataev'; cfe-commits at lists.llvm.org
> Subject: RE: r270838 - [OPENMP] Add option '-fopenmp-version=[31|40|45]'
> allowing choosing
>
> Hi,
>
> I think this commit may have caused the failure in
> http://lab.llvm.org:8011/builders/clang-cmake-mips/builds/13743. Could you
> check? Buildbot will have supressed the usual email because the previous
> build failed (for a different reason).
>
> > -----Original Message-----
> > From: cfe-commits [mailto:cfe-commits-bounces at lists.llvm.org] On Behalf
> > Of Alexey Bataev via cfe-commits
> > Sent: 26 May 2016 12:10
> > To: cfe-commits at lists.llvm.org
> > Subject: r270838 - [OPENMP] Add option '-fopenmp-version=[31|40|45]'
> > allowing choosing
> >
> > Author: abataev
> > Date: Thu May 26 06:10:11 2016
> > New Revision: 270838
> >
> > URL: http://llvm.org/viewvc/llvm-project?rev=270838&view=rev
> > Log:
> > [OPENMP] Add option '-fopenmp-version=[31|40|45]' allowing choosing
> > OpenMP version.
> >
> > If '-fopenmp' option is provided '-fopenmp-version=' allows to control,
> > which version of OpenMP must be supported. Currently it affects only the
> > value of _OPENMP define.
> >
> > Modified:
> > cfe/trunk/include/clang/Basic/LangOptions.def
> > cfe/trunk/include/clang/Driver/Options.td
> > cfe/trunk/lib/Driver/Tools.cpp
> > cfe/trunk/lib/Frontend/CompilerInvocation.cpp
> > cfe/trunk/lib/Frontend/InitPreprocessor.cpp
> > cfe/trunk/test/OpenMP/driver.c
> > cfe/trunk/test/OpenMP/predefined_macro.c
> >
> > Modified: cfe/trunk/include/clang/Basic/LangOptions.def
> > URL: http://llvm.org/viewvc/llvm-
> >
> project/cfe/trunk/include/clang/Basic/LangOptions.def?rev=270838&r1=270
> > 837&r2=270838&view=diff
> >
> ==========================================================
> > ====================
> > --- cfe/trunk/include/clang/Basic/LangOptions.def (original)
> > +++ cfe/trunk/include/clang/Basic/LangOptions.def Thu May 26 06:10:11
> > 2016
> > @@ -182,7 +182,7 @@ LANGOPT(NativeHalfType , 1, 0, "Nativ
> > LANGOPT(NativeHalfArgsAndReturns, 1, 0, "Native half args and returns")
> > LANGOPT(HalfArgsAndReturns, 1, 0, "half args and returns")
> > LANGOPT(CUDA , 1, 0, "CUDA")
> > -LANGOPT(OpenMP , 1, 0, "OpenMP support")
> > +LANGOPT(OpenMP , 32, 0, "OpenMP support and version of
> OpenMP
> > (31, 40 or 45)")
> > LANGOPT(OpenMPUseTLS , 1, 0, "Use TLS for threadprivates or runtime
> > calls")
> > LANGOPT(OpenMPIsDevice , 1, 0, "Generate code only for OpenMP
> target
> > device")
> >
> >
> > Modified: cfe/trunk/include/clang/Driver/Options.td
> > URL: http://llvm.org/viewvc/llvm-
> >
> project/cfe/trunk/include/clang/Driver/Options.td?rev=270838&r1=270837&
> > r2=270838&view=diff
> >
> ==========================================================
> > ====================
> > --- cfe/trunk/include/clang/Driver/Options.td (original)
> > +++ cfe/trunk/include/clang/Driver/Options.td Thu May 26 06:10:11 2016
> > @@ -1004,6 +1004,7 @@ def fobjc_sender_dependent_dispatch : Fl
> > def fomit_frame_pointer : Flag<["-"], "fomit-frame-pointer">,
> > Group<f_Group>;
> > def fopenmp : Flag<["-"], "fopenmp">, Group<f_Group>,
> Flags<[CC1Option,
> > NoArgumentUnused]>;
> > def fno_openmp : Flag<["-"], "fno-openmp">, Group<f_Group>,
> > Flags<[NoArgumentUnused]>;
> > +def fopenmp_version_EQ : Joined<["-"], "fopenmp-version=">,
> > Group<f_Group>, Flags<[CC1Option, NoArgumentUnused]>;
> > def fopenmp_EQ : Joined<["-"], "fopenmp=">, Group<f_Group>;
> > def fopenmp_use_tls : Flag<["-"], "fopenmp-use-tls">, Group<f_Group>,
> > Flags<[NoArgumentUnused]>;
> > def fnoopenmp_use_tls : Flag<["-"], "fnoopenmp-use-tls">,
> > Group<f_Group>, Flags<[CC1Option, NoArgumentUnused]>;
> >
> > Modified: cfe/trunk/lib/Driver/Tools.cpp
> > URL: http://llvm.org/viewvc/llvm-
> >
> project/cfe/trunk/lib/Driver/Tools.cpp?rev=270838&r1=270837&r2=270838&
> > view=diff
> >
> ==========================================================
> > ====================
> > --- cfe/trunk/lib/Driver/Tools.cpp (original)
> > +++ cfe/trunk/lib/Driver/Tools.cpp Thu May 26 06:10:11 2016
> > @@ -4862,7 +4862,8 @@ void Clang::ConstructJob(Compilation &C,
> >
> > // Forward flags for OpenMP
> > if (Args.hasFlag(options::OPT_fopenmp, options::OPT_fopenmp_EQ,
> > - options::OPT_fno_openmp, false))
> > + options::OPT_fno_openmp, false)) {
> > + Args.AddAllArgs(CmdArgs, options::OPT_fopenmp_version_EQ);
> > switch (getOpenMPRuntime(getToolChain(), Args)) {
> > case OMPRT_OMP:
> > case OMPRT_IOMP5:
> > @@ -4885,6 +4886,7 @@ void Clang::ConstructJob(Compilation &C,
> > // semantic analysis, etc.
> > break;
> > }
> > + }
> >
> > const SanitizerArgs &Sanitize = getToolChain().getSanitizerArgs();
> > Sanitize.addArgs(getToolChain(), Args, CmdArgs, InputType);
> >
> > Modified: cfe/trunk/lib/Frontend/CompilerInvocation.cpp
> > URL: http://llvm.org/viewvc/llvm-
> >
> project/cfe/trunk/lib/Frontend/CompilerInvocation.cpp?rev=270838&r1=270
> > 837&r2=270838&view=diff
> >
> ==========================================================
> > ====================
> > --- cfe/trunk/lib/Frontend/CompilerInvocation.cpp (original)
> > +++ cfe/trunk/lib/Frontend/CompilerInvocation.cpp Thu May 26 06:10:11
> > 2016
> > @@ -1960,18 +1960,23 @@ static void ParseLangArgs(LangOptions &O
> > Opts.OpenMPIsDevice =
> > Opts.OpenMP && Args.hasArg(options::OPT_fopenmp_is_device);
> >
> > - // Provide diagnostic when a given target is not expected to be an
> OpenMP
> > - // device or host.
> > - if (Opts.OpenMP && !Opts.OpenMPIsDevice) {
> > - switch (T.getArch()) {
> > - default:
> > - break;
> > - // Add unsupported host targets here:
> > - case llvm::Triple::nvptx:
> > - case llvm::Triple::nvptx64:
> > - Diags.Report(clang::diag::err_drv_omp_host_target_not_supported)
> > - << TargetOpts.Triple;
> > - break;
> > + if (Opts.OpenMP) {
> > + if (int Version = getLastArgIntValue(Args, OPT_fopenmp_version_EQ,
> > + Opts.OpenMP, Diags))
> > + Opts.OpenMP = Version;
> > + // Provide diagnostic when a given target is not expected to be an
> > OpenMP
> > + // device or host.
> > + if (!Opts.OpenMPIsDevice) {
> > + switch (T.getArch()) {
> > + default:
> > + break;
> > + // Add unsupported host targets here:
> > + case llvm::Triple::nvptx:
> > + case llvm::Triple::nvptx64:
> > + Diags.Report(clang::diag::err_drv_omp_host_target_not_supported)
> > + << TargetOpts.Triple;
> > + break;
> > + }
> > }
> > }
> >
> >
> > Modified: cfe/trunk/lib/Frontend/InitPreprocessor.cpp
> > URL: http://llvm.org/viewvc/llvm-
> >
> project/cfe/trunk/lib/Frontend/InitPreprocessor.cpp?rev=270838&r1=27083
> > 7&r2=270838&view=diff
> >
> ==========================================================
> > ====================
> > --- cfe/trunk/lib/Frontend/InitPreprocessor.cpp (original)
> > +++ cfe/trunk/lib/Frontend/InitPreprocessor.cpp Thu May 26 06:10:11 2016
> > @@ -928,7 +928,18 @@ static void InitializePredefinedMacros(c
> > // macro name is defined to have the decimal value yyyymm where
> > // yyyy and mm are the year and the month designations of the
> > // version of the OpenMP API that the implementation support.
> > - Builder.defineMacro("_OPENMP", "201511");
> > + switch (LangOpts.OpenMP) {
> > + case 40:
> > + Builder.defineMacro("_OPENMP", "201307");
> > + break;
> > + case 45:
> > + Builder.defineMacro("_OPENMP", "201511");
> > + break;
> > + default:
> > + // Default version is OpenMP 3.1
> > + Builder.defineMacro("_OPENMP", "201107");
> > + break;
> > + }
> > }
> >
> > // CUDA device path compilaton
> >
> > Modified: cfe/trunk/test/OpenMP/driver.c
> > URL: http://llvm.org/viewvc/llvm-
> >
> project/cfe/trunk/test/OpenMP/driver.c?rev=270838&r1=270837&r2=27083
> > 8&view=diff
> >
> ==========================================================
> > ====================
> > --- cfe/trunk/test/OpenMP/driver.c (original)
> > +++ cfe/trunk/test/OpenMP/driver.c Thu May 26 06:10:11 2016
> > @@ -8,3 +8,22 @@
> > // CHECK-NO-TLS: -cc1
> > // CHECK-NO-TLS-SAME: -fnoopenmp-use-tls
> > //
> > +// RUN: %clang %s -c -E -dM -fopenmp | FileCheck --check-prefix=CHECK-
> > DEFAULT-VERSION %s
> > +// RUN: %clang %s -c -E -dM -fopenmp -fopenmp-version=1 | FileCheck --
> > check-prefix=CHECK-DEFAULT-VERSION %s
> > +// RUN: %clang %s -c -E -dM -fopenmp -fopenmp-version=0 | FileCheck --
> > check-prefix=CHECK-DEFAULT-VERSION %s
> > +// RUN: %clang %s -c -E -dM -fopenmp -fopenmp-version=100 | FileCheck
> -
> > -check-prefix=CHECK-DEFAULT-VERSION %s
> > +// RUN: %clang %s -c -E -dM -fopenmp -fopenmp-version=31 | FileCheck -
> -
> > check-prefix=CHECK-DEFAULT-VERSION %s
> > +// CHECK-DEFAULT-VERSION: #define _OPENMP 201107
> > +
> > +// RUN: %clang %s -c -E -dM -fopenmp -fopenmp-version=40 | FileCheck -
> -
> > check-prefix=CHECK-40-VERSION %s
> > +// CHECK-40-VERSION: #define _OPENMP 201307
> > +
> > +// RUN: %clang %s -c -E -dM -fopenmp -fopenmp-version=45 | FileCheck -
> -
> > check-prefix=CHECK-45-VERSION %s
> > +// CHECK-45-VERSION: #define _OPENMP 201511
> > +
> > +// RUN: %clang %s -c -E -dM -fopenmp-version=1 | FileCheck --check-
> > prefix=CHECK-VERSION %s
> > +// RUN: %clang %s -c -E -dM -fopenmp-version=31 | FileCheck --check-
> > prefix=CHECK-VERSION %s
> > +// RUN: %clang %s -c -E -dM -fopenmp-version=40 | FileCheck --check-
> > prefix=CHECK-VERSION %s
> > +// RUN: %clang %s -c -E -dM -fopenmp-version=45 | FileCheck --check-
> > prefix=CHECK-VERSION %s
> > +// CHECK-VERSION-NOT: #define _OPENMP
> > +
> >
> > Modified: cfe/trunk/test/OpenMP/predefined_macro.c
> > URL: http://llvm.org/viewvc/llvm-
> >
> project/cfe/trunk/test/OpenMP/predefined_macro.c?rev=270838&r1=2708
> > 37&r2=270838&view=diff
> >
> ==========================================================
> > ====================
> > --- cfe/trunk/test/OpenMP/predefined_macro.c (original)
> > +++ cfe/trunk/test/OpenMP/predefined_macro.c Thu May 26 06:10:11
> 2016
> > @@ -5,7 +5,7 @@
> > // -fopenmp option is specified
> > #ifndef _OPENMP
> > #error "No _OPENMP macro is defined with -fopenmp option"
> > -#elsif _OPENMP != 201511
> > +#elsif _OPENMP != 201107
> > #error "_OPENMP has incorrect value"
> > #endif //_OPENMP
> > #else
> >
> >
> > _______________________________________________
> > cfe-commits mailing list
> > cfe-commits at lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
More information about the cfe-commits
mailing list