14 #ifndef LLVM_EXECUTIONENGINE_ORC_JITSYMBOL_H
15 #define LLVM_EXECUTIONENGINE_ORC_JITSYMBOL_H
18 #include "llvm/Support/DataTypes.h"
53 :
JITSymbolBase(Flags), GetAddress(std::move(GetAddress)), CachedAddr(0) {}
56 explicit operator bool()
const {
return CachedAddr || GetAddress; }
62 CachedAddr = GetAddress();
63 assert(CachedAddr &&
"Symbol could not be materialized.");
77 #endif // LLVM_EXECUTIONENGINE_ORC_JITSYMBOL_H
TargetAddress getAddress()
Get the address of the symbol in the target address space.
Base class for symbols in the JIT.
JITSymbol(GetAddressFtor GetAddress, JITSymbolFlags Flags)
Create a symbol for a definition that doesn't have a known address yet.
JITSymbol(std::nullptr_t)
Create a 'null' symbol that represents failure to find a symbol definition.
JITSymbolFlags
Flags for symbols in the JIT.
JITSymbol(TargetAddress Addr, JITSymbolFlags Flags)
Create a symbol for a definition with a known address.
Represents a symbol in the JIT.
uint64_t TargetAddress
Represents an address in the target process's address space.
std::function< TargetAddress()> GetAddressFtor