[flang] This adds the lowering stubs for Open MP.

The lowering bridge will call these lowering hooks to process the Open
MP directives that it iterates over in the PFT.  This is a mock
interface without an implementation in this patch.

Reviewed By: kiranchandramohan

Differential Revision: https://reviews.llvm.org/D80815
This commit is contained in:
Eric Schweitz
2020-05-27 14:18:40 -07:00
parent e132a9c012
commit ae6e499d25
4 changed files with 81 additions and 0 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -1,5 +1,6 @@
add_flang_library(FortranLower
OpenMP.cpp
PFTBuilder.cpp
LINK_COMPONENTS

View File

@@ -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();
}