LLVM  14.0.0git
Public Member Functions | List of all members
llvm::orc::DebugObjectManagerPlugin Class Reference

Creates and manages DebugObjects for JITLink artifacts. More...

#include "llvm/ExecutionEngine/Orc/DebugObjectManagerPlugin.h"

Inheritance diagram for llvm::orc::DebugObjectManagerPlugin:
Inheritance graph
[legend]
Collaboration diagram for llvm::orc::DebugObjectManagerPlugin:
Collaboration graph
[legend]

Public Member Functions

 DebugObjectManagerPlugin (ExecutionSession &ES, std::unique_ptr< DebugObjectRegistrar > Target)
 
 ~DebugObjectManagerPlugin ()
 
void notifyMaterializing (MaterializationResponsibility &MR, jitlink::LinkGraph &G, jitlink::JITLinkContext &Ctx, MemoryBufferRef InputObject) override
 
Error notifyEmitted (MaterializationResponsibility &MR) override
 
Error notifyFailed (MaterializationResponsibility &MR) override
 
Error notifyRemovingResources (ResourceKey K) override
 
void notifyTransferringResources (ResourceKey DstKey, ResourceKey SrcKey) override
 
void modifyPassConfig (MaterializationResponsibility &MR, jitlink::LinkGraph &LG, jitlink::PassConfiguration &PassConfig) override
 
- Public Member Functions inherited from llvm::orc::ObjectLinkingLayer::Plugin
virtual ~Plugin ()
 
virtual void notifyLoaded (MaterializationResponsibility &MR)
 
virtual SyntheticSymbolDependenciesMap getSyntheticSymbolDependencies (MaterializationResponsibility &MR)
 Return any dependencies that synthetic symbols (e.g. More...
 

Additional Inherited Members

- Public Types inherited from llvm::orc::ObjectLinkingLayer::Plugin
using JITLinkSymbolSet = DenseSet< jitlink::Symbol * >
 
using SyntheticSymbolDependenciesMap = DenseMap< SymbolStringPtr, JITLinkSymbolSet >
 

Detailed 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.

Definition at line 48 of file DebugObjectManagerPlugin.h.

Constructor & Destructor Documentation

◆ DebugObjectManagerPlugin()

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

Definition at line 400 of file DebugObjectManagerPlugin.cpp.

◆ ~DebugObjectManagerPlugin()

llvm::orc::DebugObjectManagerPlugin::~DebugObjectManagerPlugin ( )
default

Member Function Documentation

◆ modifyPassConfig()

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

◆ notifyEmitted()

Error llvm::orc::DebugObjectManagerPlugin::notifyEmitted ( MaterializationResponsibility MR)
overridevirtual

◆ notifyFailed()

Error llvm::orc::DebugObjectManagerPlugin::notifyFailed ( MaterializationResponsibility MR)
overridevirtual

◆ notifyMaterializing()

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

◆ notifyRemovingResources()

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

◆ notifyTransferringResources()

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

Implements llvm::orc::ObjectLinkingLayer::Plugin.

Definition at line 490 of file DebugObjectManagerPlugin.cpp.

References llvm::Lock, and move.


The documentation for this class was generated from the following files: