| //===-------- OffloadRTL.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 |
| // |
| //===----------------------------------------------------------------------===// |
| // |
| // Contains OpenMP specific PluginManager state. |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef OMPTARGET_OPENMP_OFFLOADRTL_H |
| #define OMPTARGET_OPENMP_OFFLOADRTL_H |
| |
| #include "OpenMP/InteropAPI.h" |
| #include "PluginManager.h" |
| |
| #include <atomic> |
| |
| namespace llvm::omp::target { |
| class OmpPluginManager : public PluginManager { |
| public: |
| /// Table of cached implicit interop objects. |
| InteropTblTy InteropTbl; |
| }; |
| } // namespace llvm::omp::target |
| |
| extern llvm::omp::target::OmpPluginManager *PM; |
| extern std::atomic<bool> RTLAlive; // Indicates if the RTL has been initialized |
| extern std::atomic<int> RTLOngoingSyncs; // Counts ongoing external syncs |
| |
| /// Initialize the plugin manager and OpenMP runtime. |
| void initRuntime(); |
| |
| /// Deinitialize the plugin and delete it. |
| void deinitRuntime(); |
| |
| #endif // OMPTARGET_OPENMP_OFFLOADRTL_H |