class DebugObjectManagerPlugin

Declaration

class DebugObjectManagerPlugin : public Plugin { /* full declaration omitted */ };

Description

Creates and manages DebugObjects for JITLink artifacts. DebugObjects are created when linking for a MaterializationResponsibility starts. They are pending as long as materialization is in progress. There can only be one pending DebugObject per MaterializationResponsibility. If materialization fails, pending DebugObjects are discarded. Once executable code for the MaterializationResponsibility is emitted, the corresponding DebugObject is finalized to target memory and the provided DebugObjectRegistrar is notified. Ownership of DebugObjects remains with the plugin.

Declared at: llvm/include/llvm/ExecutionEngine/Orc/DebugObjectManagerPlugin.h:48

Inherits from: ObjectLinkingLayer::Plugin

Member Variables

private llvm::orc::ExecutionSession& ES
private std::map<MaterializationResponsibility*, OwnedDebugObject> PendingObjs
private std::map<ResourceKey, std::vector<OwnedDebugObject>> RegisteredObjs
private std::mutex PendingObjsLock
private std::mutex RegisteredObjsLock
private std::unique_ptr<DebugObjectRegistrar> Target

Method Overview

Inherited from ObjectLinkingLayer::Plugin:

Methods

DebugObjectManagerPlugin(
    llvm::orc::ExecutionSession& ES,
    std::unique_ptr<DebugObjectRegistrar> Target)

Declared at: llvm/include/llvm/ExecutionEngine/Orc/DebugObjectManagerPlugin.h:50

Parameters

llvm::orc::ExecutionSession& ES
std::unique_ptr<DebugObjectRegistrar> Target

void modifyPassConfig(
    llvm::orc::MaterializationResponsibility& MR,
    jitlink::LinkGraph& LG,
    jitlink::PassConfiguration& PassConfig)

Declared at: llvm/include/llvm/ExecutionEngine/Orc/DebugObjectManagerPlugin.h:65

Parameters

llvm::orc::MaterializationResponsibility& MR
jitlink::LinkGraph& LG
jitlink::PassConfiguration& PassConfig

llvm::Error notifyEmitted(
    llvm::orc::MaterializationResponsibility& MR)

Declared at: llvm/include/llvm/ExecutionEngine/Orc/DebugObjectManagerPlugin.h:58

Parameters

llvm::orc::MaterializationResponsibility& MR

llvm::Error notifyFailed(
    llvm::orc::MaterializationResponsibility& MR)

Declared at: llvm/include/llvm/ExecutionEngine/Orc/DebugObjectManagerPlugin.h:59

Parameters

llvm::orc::MaterializationResponsibility& MR

void notifyMaterializing(
    llvm::orc::MaterializationResponsibility& MR,
    jitlink::LinkGraph& G,
    jitlink::JITLinkContext& Ctx,
    llvm::MemoryBufferRef InputObject)

Declared at: llvm/include/llvm/ExecutionEngine/Orc/DebugObjectManagerPlugin.h:54

Parameters

llvm::orc::MaterializationResponsibility& MR
jitlink::LinkGraph& G
jitlink::JITLinkContext& Ctx
llvm::MemoryBufferRef InputObject

llvm::Error notifyRemovingResources(
    llvm::orc::ResourceKey K)

Declared at: llvm/include/llvm/ExecutionEngine/Orc/DebugObjectManagerPlugin.h:60

Parameters

llvm::orc::ResourceKey K

void notifyTransferringResources(
    llvm::orc::ResourceKey DstKey,
    llvm::orc::ResourceKey SrcKey)

Declared at: llvm/include/llvm/ExecutionEngine/Orc/DebugObjectManagerPlugin.h:62

Parameters

llvm::orc::ResourceKey DstKey
llvm::orc::ResourceKey SrcKey

~DebugObjectManagerPlugin()

Declared at: llvm/include/llvm/ExecutionEngine/Orc/DebugObjectManagerPlugin.h:52