diff --git a/flang/include/flang/Lower/AbstractConverter.h b/flang/include/flang/Lower/AbstractConverter.h new file mode 100644 --- /dev/null +++ b/flang/include/flang/Lower/AbstractConverter.h @@ -0,0 +1,19 @@ +//===-- Lower/AbstractConverter.h -------------------------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef FORTRAN_LOWER_ABSTRACTCONVERTER_H +#define FORTRAN_LOWER_ABSTRACTCONVERTER_H + +namespace Fortran::lower { + +// temporary stub +class AbstractConverter; + +} // namespace Fortran::lower + +#endif // FORTRAN_LOWER_ABSTRACTCONVERTER_H diff --git a/flang/include/flang/Lower/OpenMP.h b/flang/include/flang/Lower/OpenMP.h new file mode 100644 --- /dev/null +++ b/flang/include/flang/Lower/OpenMP.h @@ -0,0 +1,35 @@ +//===-- Lower/OpenMP.h -- lower Open MP directives --------------*- C++ -*-===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#ifndef FORTRAN_LOWER_OPENMP_H +#define FORTRAN_LOWER_OPENMP_H + +namespace Fortran { +namespace parser { +struct OpenMPConstruct; +struct OmpEndLoopDirective; +} // namespace parser + +namespace lower { + +class AbstractConverter; + +namespace pft { +struct Evaluation; +} // namespace pft + +void genOpenMPConstruct(AbstractConverter &, pft::Evaluation &, + const parser::OpenMPConstruct &); + +void genOpenMPEndLoop(AbstractConverter &, pft::Evaluation &, + const parser::OmpEndLoopDirective &); + +} // namespace lower +} // namespace Fortran + +#endif // FORTRAN_LOWER_OPENMP_H diff --git a/flang/lib/Lower/CMakeLists.txt b/flang/lib/Lower/CMakeLists.txt --- a/flang/lib/Lower/CMakeLists.txt +++ b/flang/lib/Lower/CMakeLists.txt @@ -1,5 +1,6 @@ add_flang_library(FortranLower + OpenMP.cpp PFTBuilder.cpp LINK_COMPONENTS diff --git a/flang/lib/Lower/OpenMP.cpp b/flang/lib/Lower/OpenMP.cpp new file mode 100644 --- /dev/null +++ b/flang/lib/Lower/OpenMP.cpp @@ -0,0 +1,26 @@ +//===-- OpenMP.cpp -- Open MP directive lowering --------------------------===// +// +// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. +// See https://llvm.org/LICENSE.txt for license information. +// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception +// +//===----------------------------------------------------------------------===// + +#include "flang/Lower/OpenMP.h" +#include "flang/Lower/AbstractConverter.h" +#include "flang/Lower/PFTBuilder.h" +#include "flang/Parser/parse-tree.h" + +#define TODO() llvm_unreachable("not yet implemented") + +void Fortran::lower::genOpenMPConstruct( + Fortran::lower::AbstractConverter &, Fortran::lower::pft::Evaluation &, + const Fortran::parser::OpenMPConstruct &) { + TODO(); +} + +void Fortran::lower::genOpenMPEndLoop( + Fortran::lower::AbstractConverter &, Fortran::lower::pft::Evaluation &, + const Fortran::parser::OmpEndLoopDirective &) { + TODO(); +}