[flang-commits] [flang] b0f7dc2 - [flang] Add OpenMP flag to bbc
Valentin Clement via flang-commits
flang-commits at lists.llvm.org
Wed Mar 9 09:34:11 PST 2022
Author: Valentin Clement
Date: 2022-03-09T18:34:04+01:00
New Revision: b0f7dc2cf04327febb02280006a7c8d10489fdd6
URL: https://github.com/llvm/llvm-project/commit/b0f7dc2cf04327febb02280006a7c8d10489fdd6
DIFF: https://github.com/llvm/llvm-project/commit/b0f7dc2cf04327febb02280006a7c8d10489fdd6.diff
LOG: [flang] Add OpenMP flag to bbc
Add `-fopenmp` flag to the `bbc` tool.
This patch is part of the upstreaming effort from fir-dev branch.
Reviewed By: schweitz, awarzynski
Differential Revision: https://reviews.llvm.org/D121118
Added:
flang/test/Lower/OpenMP/pre-fir-tree01.f90
Modified:
flang/tools/bbc/bbc.cpp
Removed:
################################################################################
diff --git a/flang/test/Lower/OpenMP/pre-fir-tree01.f90 b/flang/test/Lower/OpenMP/pre-fir-tree01.f90
new file mode 100644
index 0000000000000..fc817942513e2
--- /dev/null
+++ b/flang/test/Lower/OpenMP/pre-fir-tree01.f90
@@ -0,0 +1,19 @@
+! RUN: bbc -fopenmp -pft-test -o %t %s | FileCheck %s
+! RUN: %flang_fc1 -fopenmp -fdebug-dump-pft -o %t %s | FileCheck %s
+
+! Test structure of the Pre-FIR tree with OpenMP
+
+subroutine sub1(a, b, n)
+ real :: a(:), b(:)
+ integer :: n, i
+ !$omp parallel do
+ do i = 1, n
+ b(i) = exp(a(i))
+ end do
+ !$omp end parallel do
+end subroutine
+
+! CHECK-LABEL: Subroutine sub1
+! CHECK: <<OpenMPConstruct>>
+! CHECK: <<DoConstruct>>
+! CHECK: <<End OpenMPConstruct>>
diff --git a/flang/tools/bbc/bbc.cpp b/flang/tools/bbc/bbc.cpp
index 99e67fa3e5854..a4a77855c2796 100644
--- a/flang/tools/bbc/bbc.cpp
+++ b/flang/tools/bbc/bbc.cpp
@@ -80,6 +80,10 @@ static llvm::cl::opt<bool> pftDumpTest(
llvm::cl::desc("parse the input, create a PFT, dump it, and exit"),
llvm::cl::init(false));
+static llvm::cl::opt<bool> enableOpenMP("fopenmp",
+ llvm::cl::desc("enable openmp"),
+ llvm::cl::init(false));
+
#define FLANG_EXCLUDE_CODEGEN
#include "flang/Tools/CLOptions.inc"
@@ -241,6 +245,12 @@ int main(int argc, char **argv) {
options.predefinitions.emplace_back(
"__flang_patchlevel__"s, std::string{FLANG_VERSION_PATCHLEVEL_STRING});
+ // enable parsing of OpenMP
+ if (enableOpenMP) {
+ options.features.Enable(Fortran::common::LanguageFeature::OpenMP);
+ options.predefinitions.emplace_back("_OPENMP", "201511");
+ }
+
Fortran::common::IntrinsicTypeDefaultKinds defaultKinds;
Fortran::parser::AllSources allSources;
Fortran::parser::AllCookedSources allCookedSources(allSources);
More information about the flang-commits
mailing list