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

Inherited from LegacyJITSymbolResolver:

Inherited from JITSymbolResolver:

Inherited from MCJITMemoryManager:

Inherited from RuntimeDyld::MemoryManager:

Methods

RTDyldMemoryManager()

Declared at: llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h:63

RTDyldMemoryManager(
    const llvm::RTDyldMemoryManager&)

Declared at: llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h:64

Parameters

const llvm::RTDyldMemoryManager&

void anchor()

Declared at: llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h:149

void deregisterEHFrames()

Declared at: llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h:75

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)

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)

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)

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)

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)

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)

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)

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)

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()

Declared at: llvm/include/llvm/ExecutionEngine/RTDyldMemoryManager.h:66