--- /dev/null
+//===-- 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
--- /dev/null
+//===-- 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
add_flang_library(FortranLower
+ OpenMP.cpp
PFTBuilder.cpp
LINK_COMPONENTS
--- /dev/null
+//===-- 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();
+}