13#ifndef LLVM_EXECUTIONENGINE_ORC_RTDYLDOBJECTLINKINGLAYER_H
14#define LLVM_EXECUTIONENGINE_ORC_RTDYLDOBJECTLINKINGLAYER_H
38 :
public RTTIExtends<RTDyldObjectLinkingLayer, ObjectLayer>,
64 void emit(std::unique_ptr<MaterializationResponsibility> R,
65 std::unique_ptr<MemoryBuffer> O)
override;
69 this->NotifyLoaded = std::move(NotifyLoaded);
76 this->NotifyEmitted = std::move(NotifyEmitted);
87 this->ProcessAllSections = ProcessAllSections;
101 this->OverrideObjectFlags = OverrideObjectFlags;
118 this->AutoClaimObjectSymbols = AutoClaimObjectSymbols;
129 using MemoryManagerUP = std::unique_ptr<RuntimeDyld::MemoryManager>;
135 std::map<StringRef, JITEvaluatedSymbol> Resolved,
136 std::set<StringRef> &InternalSymbols);
140 std::unique_ptr<RuntimeDyld::MemoryManager> MemMgr,
141 std::unique_ptr<RuntimeDyld::LoadedObjectInfo> LoadedObjInfo,
142 std::unique_ptr<SymbolDependenceMap> Deps,
Error Err);
148 mutable std::mutex RTDyldLayerMutex;
149 GetMemoryManagerFunction GetMemoryManager;
150 NotifyLoadedFunction NotifyLoaded;
151 NotifyEmittedFunction NotifyEmitted;
152 bool ProcessAllSections =
false;
153 bool OverrideObjectFlags =
false;
154 bool AutoClaimObjectSymbols =
false;
156 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...
This interface provides simple read-only access to a block of memory, and provides simple methods for...
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.
RTDyldObjectLinkingLayer & setNotifyEmitted(NotifyEmittedFunction NotifyEmitted)
Set the NotifyEmitted callback.
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 ...
std::function< void(MaterializationResponsibility &R, const object::ObjectFile &Obj, const RuntimeDyld::LoadedObjectInfo &)> NotifyLoadedFunction
Functor for receiving object-loaded notifications.
Listens for ResourceTracker operations.
This is an optimization pass for GlobalISel generic memory operations.