//===----------- rtl.cpp - Target independent OpenMP target RTL -----------===// // // 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 // //===----------------------------------------------------------------------===// // // Initialization and tear down of the offload runtime. // //===----------------------------------------------------------------------===// #include "OpenMP/OMPT/Callback.h" #include "PluginManager.h" #include "Shared/Debug.h" #include "Shared/Profile.h" #ifdef OMPT_SUPPORT extern void llvm::omp::target::ompt::connectLibrary(); #endif __attribute__((constructor(101))) void init() { Profiler::get(); TIMESCOPE(); DP("Init offload library!\n"); PM = new PluginManager(); #ifdef OMPT_SUPPORT // Initialize OMPT first llvm::omp::target::ompt::connectLibrary(); #endif PM->init(); PM->registerDelayedLibraries(); } __attribute__((destructor(101))) void deinit() { DP("Deinit offload library!\n"); delete PM; }