//===------ JITLinkGeneric.h - Generic JIT linker utilities -----*- 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 // //===----------------------------------------------------------------------===// // // Generic JITLinker utilities. E.g. graph pruning, eh-frame parsing. // //===----------------------------------------------------------------------===// #ifndef LIB_EXECUTIONENGINE_JITLINK_JITLINKGENERIC_H #define LIB_EXECUTIONENGINE_JITLINK_JITLINKGENERIC_H #include "llvm/ExecutionEngine/JITLink/JITLink.h" #define DEBUG_TYPE … namespace llvm { namespace jitlink { /// Base class for a JIT linker. /// /// A JITLinkerBase instance links one object file into an ongoing JIT /// session. Symbol resolution and finalization operations are pluggable, /// and called using continuation passing (passing a continuation for the /// remaining linker work) to allow them to be performed asynchronously. class JITLinkerBase { … }; template <typename LinkerImpl> class JITLinker : public JITLinkerBase { … }; /// Removes dead symbols/blocks/addressables. /// /// Finds the set of symbols and addressables reachable from any symbol /// initially marked live. All symbols/addressables not marked live at the end /// of this process are removed. void prune(LinkGraph &G); } // end namespace jitlink } // end namespace llvm #undef DEBUG_TYPE // "jitlink" #endif // LIB_EXECUTIONENGINE_JITLINK_JITLINKGENERIC_H