//===----------------------------------------------------------------------===// // // The LLVM Compiler Infrastructure // // This file is dual licensed under the MIT and the University of Illinois Open // Source Licenses. See LICENSE.txt for details. // //===----------------------------------------------------------------------===// /*! \file \brief The interface between compiler-generated target code and runtime library */ #ifndef COMPILER_IF_TARGET_H_INCLUDED #define COMPILER_IF_TARGET_H_INCLUDED #include "offload_target.h" #define OFFLOAD_TARGET_ENTER OFFLOAD_PREFIX(target_enter) #define OFFLOAD_TARGET_LEAVE OFFLOAD_PREFIX(target_leave) #define OFFLOAD_TARGET_MAIN OFFLOAD_PREFIX(target_main) /*! \fn OFFLOAD_TARGET_ENTER \brief Fill in variable addresses using VarDesc array. \brief Then call back the runtime library to fetch data. \param ofld Offload descriptor created by runtime. \param var_desc_num Number of variable descriptors. \param var_desc Pointer to VarDesc array. \param var_desc2 Pointer to VarDesc2 array. */ extern "C" void OFFLOAD_TARGET_ENTER( OFFLOAD ofld, int var_desc_num, VarDesc *var_desc, VarDesc2 *var_desc2 ); /*! \fn OFFLOAD_TARGET_LEAVE \brief Call back the runtime library to gather outputs using VarDesc array. \param ofld Offload descriptor created by OFFLOAD_TARGET_ACQUIRE. */ extern "C" void OFFLOAD_TARGET_LEAVE( OFFLOAD ofld ); // Entry point for the target application. extern "C" void OFFLOAD_TARGET_MAIN(void); #endif // COMPILER_IF_TARGET_H_INCLUDED