13#ifndef LLVM_EXECUTIONENGINE_ORC_RTDYLDOBJECTLINKINGLAYER_H
14#define LLVM_EXECUTIONENGINE_ORC_RTDYLDOBJECTLINKINGLAYER_H
37 :
public RTTIExtends<RTDyldObjectLinkingLayer, ObjectLayer>,
62 void emit(std::unique_ptr<MaterializationResponsibility> R,
63 std::unique_ptr<MemoryBuffer> O)
override;
67 this->NotifyLoaded = std::move(NotifyLoaded);
74 this->NotifyEmitted = std::move(NotifyEmitted);
85 this->ProcessAllSections = ProcessAllSections;
99 this->OverrideObjectFlags = OverrideObjectFlags;
116 this->AutoClaimObjectSymbols = AutoClaimObjectSymbols;
127 using MemoryManagerUP = std::unique_ptr<RuntimeDyld::MemoryManager>;
133 std::map<StringRef, JITEvaluatedSymbol>
Resolved,
134 std::set<StringRef> &InternalSymbols);
138 std::unique_ptr<RuntimeDyld::MemoryManager> MemMgr,
139 std::unique_ptr<RuntimeDyld::LoadedObjectInfo> LoadedObjInfo,
140 std::unique_ptr<SymbolDependenceMap> Deps,
Error Err);
146 mutable std::mutex RTDyldLayerMutex;
150 bool ProcessAllSections =
false;
151 bool OverrideObjectFlags =
false;
152 bool AutoClaimObjectSymbols =
false;
154 std::vector<JITEventListener *> EventListeners;
Lightweight error class with error context and mandatory checking.
JITEventListener - Abstract interface for use by the JIT to notify clients about significant events d...
Inheritance utility for extensible RTTI.
Information about the loaded object.
This class is the base class for all object file types.
An ExecutionSession represents a running JIT program.
Represents a JIT'd dynamic library.
Tracks responsibility for materialization, and mediates interactions between MaterializationUnits and...
RTDyldObjectLinkingLayer & setNotifyLoaded(NotifyLoadedFunction NotifyLoaded)
Set the NotifyLoaded callback.
std::function< void(MaterializationResponsibility &R, std::unique_ptr< MemoryBuffer >)> NotifyEmittedFunction
Functor for receiving finalization notifications.
unique_function< std::unique_ptr< RuntimeDyld::MemoryManager >()> GetMemoryManagerFunction
RTDyldObjectLinkingLayer & setNotifyEmitted(NotifyEmittedFunction NotifyEmitted)
Set the NotifyEmitted callback.
void emit(std::unique_ptr< MaterializationResponsibility > R, std::unique_ptr< MemoryBuffer > O) override
Emit the object.
~RTDyldObjectLinkingLayer()
void unregisterJITEventListener(JITEventListener &L)
Unregister a JITEventListener.
RTDyldObjectLinkingLayer & setAutoClaimResponsibilityForObjectSymbols(bool AutoClaimObjectSymbols)
If set, this RTDyldObjectLinkingLayer instance will claim responsibility for any symbols provided by ...
RTDyldObjectLinkingLayer & setProcessAllSections(bool ProcessAllSections)
Set the 'ProcessAllSections' flag.
RTDyldObjectLinkingLayer & setOverrideObjectFlagsWithResponsibilityFlags(bool OverrideObjectFlags)
Instructs this RTDyldLinkingLayer2 instance to override the symbol flags returned by RuntimeDyld for ...
void registerJITEventListener(JITEventListener &L)
Register a JITEventListener.
std::function< void(MaterializationResponsibility &R, const object::ObjectFile &Obj, const RuntimeDyld::LoadedObjectInfo &)> NotifyLoadedFunction
Functor for receiving object-loaded notifications.
Listens for ResourceTracker operations.
@ Resolved
Queried, materialization begun.
This is an optimization pass for GlobalISel generic memory operations.