LLVM 22.0.0git
llvm::orc::LazyObjectLinkingLayer Class Reference

LazyObjectLinkingLayer is an adapter for ObjectLinkingLayer that builds lazy reexports for all function symbols in objects that are/ added to defer linking until the first call to a function defined in the object. More...

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

Inheritance diagram for llvm::orc::LazyObjectLinkingLayer:
[legend]

Classes

class  RenamerPlugin

Public Member Functions

 LazyObjectLinkingLayer (ObjectLinkingLayer &BaseLayer, LazyReexportsManager &LRMgr)
llvm::Error add (llvm::orc::ResourceTrackerSP RT, std::unique_ptr< MemoryBuffer > O, MaterializationUnit::Interface I) override
 Add an object file to the JITDylib targeted by the given tracker.
void emit (std::unique_ptr< MaterializationResponsibility > R, std::unique_ptr< MemoryBuffer > O) override
 Emit should materialize the given IR.
Public Member Functions inherited from llvm::orc::ObjectLayer
 ObjectLayer (ExecutionSession &ES)
virtual ~ObjectLayer ()
ExecutionSessiongetExecutionSession ()
 Returns the execution session for this layer.
Error add (ResourceTrackerSP RT, std::unique_ptr< MemoryBuffer > O)
 Adds a MaterializationUnit for the object file in the given memory buffer to the JITDylib for the given ResourceTracker.
Error add (JITDylib &JD, std::unique_ptr< MemoryBuffer > O, MaterializationUnit::Interface I)
 Adds a MaterializationUnit for the object file in the given memory buffer to the given JITDylib.
Error add (JITDylib &JD, std::unique_ptr< MemoryBuffer > O)
 Adds a MaterializationUnit for the object file in the given memory buffer to the given JITDylib.
Public Member Functions inherited from llvm::RTTIExtends< ObjectLayer, RTTIRoot >
const void * dynamicClassID () const override
bool isA () const
 Check whether this instance is a subclass of QueryT.
Public Member Functions inherited from llvm::RTTIRoot
virtual ~RTTIRoot ()=default
virtual bool isA (const void *const ClassID) const
 Returns true if this class's ID matches the given class ID.

Additional Inherited Members

Static Public Member Functions inherited from llvm::RTTIExtends< ObjectLayer, RTTIRoot >
static const void * classID ()
static bool classof (const T *R)
Static Public Member Functions inherited from llvm::RTTIRoot
static const void * classID ()
 Returns the class ID for this type.
Static Public Attributes inherited from llvm::orc::ObjectLayer
static char ID

Detailed Description

LazyObjectLinkingLayer is an adapter for ObjectLinkingLayer that builds lazy reexports for all function symbols in objects that are/ added to defer linking until the first call to a function defined in the object.

Linking is performed by emitting the object file via the base ObjectLinkingLayer.

No partitioning is performed: The first call to any function in the object will trigger linking of the whole object.

References to data symbols are not lazy and will trigger immediate linking (same os ObjectlinkingLayer).

Definition at line 37 of file LazyObjectLinkingLayer.h.

Constructor & Destructor Documentation

◆ LazyObjectLinkingLayer()

llvm::orc::LazyObjectLinkingLayer::LazyObjectLinkingLayer ( ObjectLinkingLayer & BaseLayer,
LazyReexportsManager & LRMgr )

Member Function Documentation

◆ add()

Error llvm::orc::LazyObjectLinkingLayer::add ( llvm::orc::ResourceTrackerSP RT,
std::unique_ptr< MemoryBuffer > O,
MaterializationUnit::Interface I )
overridevirtual

Add an object file to the JITDylib targeted by the given tracker.

Reimplemented from llvm::orc::ObjectLayer.

Definition at line 80 of file LazyObjectLinkingLayer.cpp.

References llvm::orc::ObjectLayer::getExecutionSession(), I, and llvm::orc::lazyReexports().

◆ emit()

void llvm::orc::LazyObjectLinkingLayer::emit ( std::unique_ptr< MaterializationResponsibility > R,
std::unique_ptr< MemoryBuffer > O )
overridevirtual

Emit should materialize the given IR.

Implements llvm::orc::ObjectLayer.

Definition at line 106 of file LazyObjectLinkingLayer.cpp.


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