13#ifndef LLVM_EXECUTIONENGINE_ORC_ELFDEBUGOBJECTPLUGIN_H
14#define LLVM_EXECUTIONENGINE_ORC_ELFDEBUGOBJECTPLUGIN_H
67 bool AutoRegisterCode,
Error &Err);
87 using OwnedDebugObject = std::unique_ptr<DebugObject>;
88 std::map<MaterializationResponsibility *, OwnedDebugObject> PendingObjs;
89 std::map<ResourceKey, std::vector<OwnedDebugObject>> RegisteredObjs;
91 std::mutex PendingObjsLock;
92 std::mutex RegisteredObjsLock;
95 bool RequireDebugSections;
96 bool AutoRegisterCode;
Lightweight error class with error context and mandatory checking.
Holds context for a single jitLink invocation.
The plugin creates a debug object from when JITLink starts processing the corresponding LinkGraph.
Error notifyFailed(MaterializationResponsibility &MR) override
void notifyTransferringResources(JITDylib &JD, ResourceKey DstKey, ResourceKey SrcKey) override
~ELFDebugObjectPlugin() override
ELFDebugObjectPlugin(ExecutionSession &ES, bool RequireDebugSections, bool AutoRegisterCode, Error &Err)
Create the plugin to submit DebugObjects for JITLink artifacts.
Error notifyRemovingResources(JITDylib &JD, ResourceKey K) override
void modifyPassConfig(MaterializationResponsibility &MR, jitlink::LinkGraph &LG, jitlink::PassConfiguration &PassConfig) override
void notifyMaterializing(MaterializationResponsibility &MR, jitlink::LinkGraph &G, jitlink::JITLinkContext &Ctx, MemoryBufferRef InputObject) override
An ExecutionSession represents a running JIT program.
Represents an address in the executor process.
Represents a JIT'd dynamic library.
Plugin instances can be added to the ObjectLinkingLayer to receive callbacks when code is loaded or e...
Tracks responsibility for materialization, and mediates interactions between MaterializationUnits and...
This is an optimization pass for GlobalISel generic memory operations.
An LinkGraph pass configuration, consisting of a list of pre-prune, post-prune, and post-fixup passes...