//===-- 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