diff --git a/flang/include/flang/Lower/Runtime.h b/flang/include/flang/Lower/Runtime.h new file mode 100644 --- /dev/null +++ b/flang/include/flang/Lower/Runtime.h @@ -0,0 +1,57 @@ +//===-- Lower/Runtime.h -- Fortran runtime codegen interface ----*- 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 +// +//===----------------------------------------------------------------------===// +// +// Builder routines for constructing the FIR dialect of MLIR. As FIR is a +// dialect of MLIR, it makes extensive use of MLIR interfaces and MLIR's coding +// style (https://mlir.llvm.org/getting_started/DeveloperGuide/) is used in this +// module. +// +//===----------------------------------------------------------------------===// + +#ifndef FORTRAN_LOWER_RUNTIME_H +#define FORTRAN_LOWER_RUNTIME_H + +namespace Fortran { + +namespace parser { +struct EventPostStmt; +struct EventWaitStmt; +struct LockStmt; +struct PauseStmt; +struct StopStmt; +struct SyncAllStmt; +struct SyncImagesStmt; +struct SyncMemoryStmt; +struct SyncTeamStmt; +struct UnlockStmt; +} // namespace parser + +namespace lower { + +class AbstractConverter; + +// Lowering of Fortran statement related runtime (other than IO and maths) + +void genEventPostStatement(AbstractConverter &, const parser::EventPostStmt &); +void genEventWaitStatement(AbstractConverter &, const parser::EventWaitStmt &); +void genLockStatement(AbstractConverter &, const parser::LockStmt &); +void genFailImageStatement(AbstractConverter &); +void genStopStatement(AbstractConverter &, const parser::StopStmt &); +void genSyncAllStatement(AbstractConverter &, const parser::SyncAllStmt &); +void genSyncImagesStatement(AbstractConverter &, + const parser::SyncImagesStmt &); +void genSyncMemoryStatement(AbstractConverter &, + const parser::SyncMemoryStmt &); +void genSyncTeamStatement(AbstractConverter &, const parser::SyncTeamStmt &); +void genUnlockStatement(AbstractConverter &, const parser::UnlockStmt &); +void genPauseStatement(AbstractConverter &, const parser::PauseStmt &); + +} // namespace lower +} // namespace Fortran + +#endif // FORTRAN_LOWER_RUNTIME_H