LLVM  3.7.0
Public Member Functions | Protected Types | Protected Attributes | List of all members
llvm::orc::ObjectLinkingLayerBase::LinkedObjectSet Class Referenceabstract

Holds a set of objects to be allocated/linked as a unit in the JIT. More...

#include <ObjectLinkingLayer.h>

Collaboration diagram for llvm::orc::ObjectLinkingLayerBase::LinkedObjectSet:
[legend]

Public Member Functions

 LinkedObjectSet (RuntimeDyld::MemoryManager &MemMgr, RuntimeDyld::SymbolResolver &Resolver)
 
virtual ~LinkedObjectSet ()
 
std::unique_ptr
< RuntimeDyld::LoadedObjectInfo
addObject (const object::ObjectFile &Obj)
 
RuntimeDyld::SymbolInfo getSymbol (StringRef Name) const
 
bool NeedsFinalization () const
 
virtual void Finalize ()=0
 
void mapSectionAddress (const void *LocalAddress, TargetAddress TargetAddr)
 
void takeOwnershipOfBuffer (std::unique_ptr< MemoryBuffer > B)
 

Protected Types

enum  { Raw, Finalizing, Finalized }
 

Protected Attributes

std::unique_ptr< RuntimeDyldRTDyld
 
enum
llvm::orc::ObjectLinkingLayerBase::LinkedObjectSet:: { ... }  
State
 
std::vector< std::unique_ptr
< MemoryBuffer > > 
OwnedBuffers
 

Detailed Description

Holds a set of objects to be allocated/linked as a unit in the JIT.

An instance of this class will be created for each set of objects added via JITObjectLayer::addObjectSet. Deleting the instance (via removeObjectSet) frees its memory, removing all symbol definitions that had been provided by this instance. Higher level layers are responsible for taking any action required to handle the missing symbols.

Definition at line 37 of file ObjectLinkingLayer.h.

Member Enumeration Documentation

anonymous enum
protected
Enumerator
Raw 
Finalizing 
Finalized 

Definition at line 73 of file ObjectLinkingLayer.h.

Constructor & Destructor Documentation

llvm::orc::ObjectLinkingLayerBase::LinkedObjectSet::LinkedObjectSet ( RuntimeDyld::MemoryManager MemMgr,
RuntimeDyld::SymbolResolver Resolver 
)
inline

Definition at line 41 of file ObjectLinkingLayer.h.

virtual llvm::orc::ObjectLinkingLayerBase::LinkedObjectSet::~LinkedObjectSet ( )
inlinevirtual

Definition at line 46 of file ObjectLinkingLayer.h.

Member Function Documentation

std::unique_ptr<RuntimeDyld::LoadedObjectInfo> llvm::orc::ObjectLinkingLayerBase::LinkedObjectSet::addObject ( const object::ObjectFile Obj)
inline
virtual void llvm::orc::ObjectLinkingLayerBase::LinkedObjectSet::Finalize ( )
pure virtual
RuntimeDyld::SymbolInfo llvm::orc::ObjectLinkingLayerBase::LinkedObjectSet::getSymbol ( StringRef  Name) const
inline

Definition at line 53 of file ObjectLinkingLayer.h.

References RTDyld.

void llvm::orc::ObjectLinkingLayerBase::LinkedObjectSet::mapSectionAddress ( const void *  LocalAddress,
TargetAddress  TargetAddr 
)
inline

Definition at line 61 of file ObjectLinkingLayer.h.

References Finalized, RTDyld, and State.

bool llvm::orc::ObjectLinkingLayerBase::LinkedObjectSet::NeedsFinalization ( ) const
inline

Definition at line 57 of file ObjectLinkingLayer.h.

References Raw, and State.

void llvm::orc::ObjectLinkingLayerBase::LinkedObjectSet::takeOwnershipOfBuffer ( std::unique_ptr< MemoryBuffer B)
inline

Definition at line 67 of file ObjectLinkingLayer.h.

References OwnedBuffers.

Member Data Documentation

std::vector<std::unique_ptr<MemoryBuffer> > llvm::orc::ObjectLinkingLayerBase::LinkedObjectSet::OwnedBuffers
protected

Definition at line 78 of file ObjectLinkingLayer.h.

Referenced by takeOwnershipOfBuffer().

std::unique_ptr<RuntimeDyld> llvm::orc::ObjectLinkingLayerBase::LinkedObjectSet::RTDyld
protected

Definition at line 72 of file ObjectLinkingLayer.h.

Referenced by addObject(), getSymbol(), and mapSectionAddress().

enum { ... } llvm::orc::ObjectLinkingLayerBase::LinkedObjectSet::State

The documentation for this class was generated from the following file: