|
LLVM
4.0.0
|
Bare bones object linking layer. More...
#include <ObjectLinkingLayer.h>
Public Types | |
| typedef std::function< void(ObjSetHandleT)> | NotifyFinalizedFtor |
| Functor for receiving finalization notifications. More... | |
| typedef std::vector < std::unique_ptr < RuntimeDyld::LoadedObjectInfo > > | LoadedObjInfoList |
| LoadedObjectInfo list. More... | |
Public Types inherited from llvm::orc::ObjectLinkingLayerBase | |
| typedef LinkedObjectSetListT::iterator | ObjSetHandleT |
| Handle to a set of loaded objects. More... | |
Public Member Functions | |
| ObjectLinkingLayer (NotifyLoadedFtor NotifyLoaded=NotifyLoadedFtor(), NotifyFinalizedFtor NotifyFinalized=NotifyFinalizedFtor()) | |
| Construct an ObjectLinkingLayer with the given NotifyLoaded, and NotifyFinalized functors. More... | |
| void | setProcessAllSections (bool ProcessAllSections) |
| Set the 'ProcessAllSections' flag. More... | |
| template<typename ObjSetT , typename MemoryManagerPtrT , typename SymbolResolverPtrT > | |
| ObjSetHandleT | addObjectSet (ObjSetT Objects, MemoryManagerPtrT MemMgr, SymbolResolverPtrT Resolver) |
| Add a set of objects (or archives) that will be treated as a unit for the purposes of symbol lookup and memory management. More... | |
| void | removeObjectSet (ObjSetHandleT H) |
| Remove the set of objects associated with handle H. More... | |
| JITSymbol | findSymbol (StringRef Name, bool ExportedSymbolsOnly) |
| Search for the given named symbol. More... | |
| JITSymbol | findSymbolIn (ObjSetHandleT H, StringRef Name, bool ExportedSymbolsOnly) |
| Search for the given named symbol in the context of the set of loaded objects represented by the handle H. More... | |
| void | mapSectionAddress (ObjSetHandleT H, const void *LocalAddress, JITTargetAddress TargetAddr) |
| Map section addresses for the objects associated with the handle H. More... | |
| void | emitAndFinalize (ObjSetHandleT H) |
| Immediately emit and finalize the object set represented by the given handle. More... | |
Additional Inherited Members | |
Protected Types inherited from llvm::orc::ObjectLinkingLayerBase | |
| typedef std::list < std::unique_ptr < LinkedObjectSet > > | LinkedObjectSetListT |
Bare bones object linking layer.
This class is intended to be used as the base layer for a JIT. It allows object files to be loaded into memory, linked, and the addresses of their symbols queried. All objects added to this layer can see each other's symbols.
Definition at line 101 of file ObjectLinkingLayer.h.
| typedef std::vector<std::unique_ptr<RuntimeDyld::LoadedObjectInfo> > llvm::orc::ObjectLinkingLayer< NotifyLoadedFtor >::LoadedObjInfoList |
LoadedObjectInfo list.
Contains a list of owning pointers to RuntimeDyld::LoadedObjectInfo instances.
Definition at line 226 of file ObjectLinkingLayer.h.
| typedef std::function<void(ObjSetHandleT)> llvm::orc::ObjectLinkingLayer< NotifyLoadedFtor >::NotifyFinalizedFtor |
Functor for receiving finalization notifications.
Definition at line 104 of file ObjectLinkingLayer.h.
|
inline |
Construct an ObjectLinkingLayer with the given NotifyLoaded, and NotifyFinalized functors.
Definition at line 230 of file ObjectLinkingLayer.h.
|
inline |
Add a set of objects (or archives) that will be treated as a unit for the purposes of symbol lookup and memory management.
Definition at line 255 of file ObjectLinkingLayer.h.
Referenced by llvm::orc::OrcMCJITReplacement::addObjectFile().
|
inline |
Immediately emit and finalize the object set represented by the given handle.
| H | Handle for object set to emit/finalize. |
Definition at line 338 of file ObjectLinkingLayer.h.
|
inline |
Search for the given named symbol.
| Name | The name of the symbol to search for. |
| ExportedSymbolsOnly | If true, search only for exported symbols. |
Definition at line 308 of file ObjectLinkingLayer.h.
|
inline |
Search for the given named symbol in the context of the set of loaded objects represented by the handle H.
| H | The handle for the object set to search in. |
| Name | The name of the symbol to search for. |
| ExportedSymbolsOnly | If true, search only for exported symbols. |
Definition at line 324 of file ObjectLinkingLayer.h.
|
inline |
Map section addresses for the objects associated with the handle H.
Definition at line 330 of file ObjectLinkingLayer.h.
Referenced by llvm::orc::OrcMCJITReplacement::mapSectionAddress().
|
inline |
Remove the set of objects associated with handle H.
All memory allocated for the objects will be freed, and the sections and symbols they provided will no longer be available. No attempt is made to re-emit the missing symbols, and any use of these symbols (directly or indirectly) will result in undefined behavior. If dependence tracking is required to detect or resolve such issues it should be added at a higher layer.
Definition at line 299 of file ObjectLinkingLayer.h.
|
inline |
Set the 'ProcessAllSections' flag.
If set to true, all sections in each object file will be allocated using the memory manager, rather than just the sections required for execution.
This is kludgy, and may be removed in the future.
Definition at line 243 of file ObjectLinkingLayer.h.
Referenced by llvm::orc::OrcMCJITReplacement::setProcessAllSections().
1.8.6