LLVM  10.0.0svn
Classes | Namespaces | Typedefs | Enumerations | Functions
JITLink.h File Reference
#include "JITLinkMemoryManager.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/DenseSet.h"
#include "llvm/ADT/Optional.h"
#include "llvm/ADT/Triple.h"
#include "llvm/ExecutionEngine/JITSymbol.h"
#include "llvm/Support/Allocator.h"
#include "llvm/Support/Endian.h"
#include "llvm/Support/Error.h"
#include "llvm/Support/FormatVariadic.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/Memory.h"
#include "llvm/Support/MemoryBuffer.h"
#include <map>
#include <string>
#include <system_error>
Include dependency graph for JITLink.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  llvm::jitlink::JITLinkError
 Base class for errors originating in JIT linker, e.g. More...
 
class  llvm::jitlink::Edge
 Represents fixups and constraints in the LinkGraph. More...
 
class  llvm::jitlink::Addressable
 Base class for Addressable entities (externals, absolutes, blocks). More...
 
class  llvm::jitlink::Block
 An Addressable with content and edges. More...
 
class  llvm::jitlink::Symbol
 Symbol representation. More...
 
class  llvm::jitlink::Section
 Represents an object file section. More...
 
class  llvm::jitlink::SectionRange
 Represents a section address range via a pair of Block pointers to the first and last Blocks in the section. More...
 
class  llvm::jitlink::LinkGraph
 
class  llvm::jitlink::LinkGraph::defined_symbol_iterator_impl< SectionItrT, SymbolItrT, T >
 
struct  llvm::jitlink::PassConfiguration
 An LinkGraph pass configuration, consisting of a list of pre-prune, post-prune, and post-fixup passes. More...
 
class  llvm::jitlink::JITLinkAsyncLookupContinuation
 A function object to call with a resolved symbol map (See AsyncLookupResult) or an error if resolution failed. More...
 
class  llvm::jitlink::JITLinkContext
 Holds context for a single jitLink invocation. More...
 

Namespaces

 llvm
 This class represents lattice values for constants.
 
 

Typedefs

using llvm::jitlink::BlockOrdinal = unsigned
 
using llvm::jitlink::SectionOrdinal = unsigned
 
using llvm::jitlink::LinkGraphPassFunction = std::function< Error(LinkGraph &)>
 A function for mutating LinkGraphs. More...
 
using llvm::jitlink::LinkGraphPassList = std::vector< LinkGraphPassFunction >
 A list of LinkGraph passes. More...
 
using llvm::jitlink::AsyncLookupResult = DenseMap< StringRef, JITEvaluatedSymbol >
 A map of symbol names to resolved addresses. More...
 

Enumerations

enum  llvm::jitlink::Linkage : uint8_t { llvm::jitlink::Linkage::Strong, llvm::jitlink::Linkage::Weak }
 Describes symbol linkage. More...
 
enum  llvm::jitlink::Scope : uint8_t { llvm::jitlink::Scope::Default, llvm::jitlink::Scope::Hidden, llvm::jitlink::Scope::Local }
 Defines the scope in which this symbol should be visible: Default – Visible in the public interface of the linkage unit. More...
 

Functions

const charllvm::jitlink::getGenericEdgeKindName (Edge::Kind K)
 Returns the string name of the given generic edge kind, or "unknown" otherwise. More...
 
const charllvm::jitlink::getLinkageName (Linkage L)
 For errors and debugging output. More...
 
const charllvm::jitlink::getScopeName (Scope S)
 For debugging output. More...
 
raw_ostreamllvm::jitlink::operator<< (raw_ostream &OS, const Block &B)
 
raw_ostreamllvm::jitlink::operator<< (raw_ostream &OS, const Symbol &A)
 
void llvm::jitlink::printEdge (raw_ostream &OS, const Block &B, const Edge &E, StringRef EdgeKindName)
 
template<typename Continuation >
std::unique_ptr< JITLinkAsyncLookupContinuation > llvm::jitlink::createLookupContinuation (Continuation Cont)
 Create a lookup continuation from a function object. More...
 
Error llvm::jitlink::markAllSymbolsLive (LinkGraph &G)
 Marks all symbols in a graph live. More...
 
void llvm::jitlink::jitLink (std::unique_ptr< JITLinkContext > Ctx)
 Basic JITLink implementation. More...