class RTDyldMemoryManager
Declaration
class RTDyldMemoryManager : public MCJITMemoryManager,
public LegacyJITSymbolResolver { /* full declaration omitted */ };
Description
Memory Management.
Declared at: llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h:60
Inherits from: MCJITMemoryManager, LegacyJITSymbolResolver
Member Variables
- protected llvm::RTDyldMemoryManager::EHFrameInfos EHFrames
Method Overview
- public RTDyldMemoryManager()
- public RTDyldMemoryManager(const llvm::RTDyldMemoryManager &)
- private void anchor()
- public void deregisterEHFrames()
- public static void deregisterEHFramesInProcess(uint8_t * Addr, size_t Size)
- public llvm::JITSymbol findSymbol(const std::string & Name)
- public llvm::JITSymbol findSymbolInLogicalDylib(const std::string & Name)
- public virtual void * getPointerToNamedFunction(const std::string & Name, bool AbortOnFailure = true)
- public virtual uint64_t getSymbolAddress(const std::string & Name)
- public virtual uint64_t getSymbolAddressInLogicalDylib(const std::string & Name)
- public static uint64_t getSymbolAddressInProcess(const std::string & Name)
- public void registerEHFrames(uint8_t * Addr, uint64_t LoadAddr, size_t Size)
- public static void registerEHFramesInProcess(uint8_t * Addr, size_t Size)
- public ~RTDyldMemoryManager()
Inherited from LegacyJITSymbolResolver:
Inherited from JITSymbolResolver:
Inherited from MCJITMemoryManager:
Inherited from RuntimeDyld::MemoryManager:
- public allocateCodeSection
- public allocateDataSection
- public allocateTLSSection
- public allowStubAllocation
- public deregisterEHFrames
- public finalizeMemory
- public needsToReserveAllocationSpace
- public notifyObjectLoaded
- public registerEHFrames
- public reserveAllocationSpace
Methods
¶RTDyldMemoryManager()
RTDyldMemoryManager()
Declared at: llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h:63
¶RTDyldMemoryManager(
const llvm::RTDyldMemoryManager&)
RTDyldMemoryManager(
const llvm::RTDyldMemoryManager&)
Declared at: llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h:64
Parameters
- const llvm::RTDyldMemoryManager&
¶void anchor()
void anchor()
Declared at: llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h:149
¶void deregisterEHFrames()
void deregisterEHFrames()
Declared at: llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h:75
¶static void deregisterEHFramesInProcess(
uint8_t* Addr,
size_t Size)
static void deregisterEHFramesInProcess(
uint8_t* Addr,
size_t Size)
Description
Deregister EH frames in the current proces.
Declared at: llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h:72
Parameters
- uint8_t* Addr
- size_t Size
¶llvm::JITSymbol findSymbol(
const std::string& Name)
llvm::JITSymbol findSymbol(
const std::string& Name)
Description
This method returns a RuntimeDyld::SymbolInfo for the specified function or variable. It is used to resolve symbols during module linking. By default this falls back on the legacy lookup method: 'getSymbolAddress'. The address returned by getSymbolAddress is treated as a strong, exported symbol, consistent with historical treatment by RuntimeDyld. Clients writing custom RTDyldMemoryManagers are encouraged to override this method and return a SymbolInfo with the flags set correctly. This is necessary for RuntimeDyld to correctly handle weak and non-exported symbols.
Declared at: llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h:100
Parameters
- const std::string& Name
¶llvm::JITSymbol findSymbolInLogicalDylib(
const std::string& Name)
llvm::JITSymbol findSymbolInLogicalDylib(
const std::string& Name)
Description
Default to treating all modules as separate. By default this falls back on the legacy lookup method: 'getSymbolAddressInLogicalDylib'. The address returned by getSymbolAddressInLogicalDylib is treated as a strong, exported symbol, consistent with historical treatment by RuntimeDyld. Clients writing custom RTDyldMemoryManagers are encouraged to override this method and return a SymbolInfo with the flags set correctly. This is necessary for RuntimeDyld to correctly handle weak and non-exported symbols.
Declared at: llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h:123
Parameters
- const std::string& Name
¶virtual void* getPointerToNamedFunction(
const std::string& Name,
bool AbortOnFailure = true)
virtual void* getPointerToNamedFunction(
const std::string& Name,
bool AbortOnFailure = true)
Description
This method returns the address of the specified function. As such it is only useful for resolving library symbols, not code generated symbols. If \p AbortOnFailure is false and no function with the given name is found, this function returns a null pointer. Otherwise, it prints a message to stderr and aborts. This function is deprecated for memory managers to be used with MCJIT or RuntimeDyld. Use getSymbolAddress instead.
Declared at: llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h:137
Parameters
- const std::string& Name
- bool AbortOnFailure = true
¶virtual uint64_t getSymbolAddress(
const std::string& Name)
virtual uint64_t getSymbolAddress(
const std::string& Name)
Description
Legacy symbol lookup - DEPRECATED! Please override findSymbol instead. This method returns the address of the specified function or variable. It is used to resolve symbols during module linking.
Declared at: llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h:85
Parameters
- const std::string& Name
¶virtual uint64_t getSymbolAddressInLogicalDylib(
const std::string& Name)
virtual uint64_t getSymbolAddressInLogicalDylib(
const std::string& Name)
Description
Legacy symbol lookup -- DEPRECATED! Please override findSymbolInLogicalDylib instead. Default to treating all modules as separate.
Declared at: llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h:108
Parameters
- const std::string& Name
¶static uint64_t getSymbolAddressInProcess(
const std::string& Name)
static uint64_t getSymbolAddressInProcess(
const std::string& Name)
Description
This method returns the address of the specified function or variable in the current process.
Declared at: llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h:79
Parameters
- const std::string& Name
¶void registerEHFrames(uint8_t* Addr,
uint64_t LoadAddr,
size_t Size)
void registerEHFrames(uint8_t* Addr,
uint64_t LoadAddr,
size_t Size)
Description
Register the EH frames with the runtime so that c++ exceptions work. \p Addr parameter provides the local address of the EH frame section data, while \p LoadAddr provides the address of the data in the target address space. If the section has not been remapped (which will usually be the case for local execution) these two values will be the same.
Declared at: llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h:74
Parameters
- uint8_t* Addr
- uint64_t LoadAddr
- size_t Size
¶static void registerEHFramesInProcess(
uint8_t* Addr,
size_t Size)
static void registerEHFramesInProcess(
uint8_t* Addr,
size_t Size)
Description
Register EH frames in the current process.
Declared at: llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h:69
Parameters
- uint8_t* Addr
- size_t Size
¶~RTDyldMemoryManager()
~RTDyldMemoryManager()
Declared at: llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h:66