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

An extended version of LLJIT that supports lazy function-at-a-time compilation of LLVM IR. More...

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

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

Public Member Functions

void setPartitionFunction (IRPartitionLayer::PartitionFunction Partition)
 Sets the partition function.
CompileOnDemandLayergetCompileOnDemandLayer ()
 Returns a reference to the on-demand layer.
LLVM_ABI Error addLazyIRModule (JITDylib &JD, ThreadSafeModule M)
 Add a module to be lazily compiled to JITDylib JD.
Error addLazyIRModule (ThreadSafeModule M)
 Add a module to be lazily compiled to the main JITDylib.
Public Member Functions inherited from llvm::orc::LLJIT
virtual ~LLJIT ()
 Destruct this instance.
ExecutionSessiongetExecutionSession ()
 Returns the ExecutionSession for this instance.
const TriplegetTargetTriple () const
 Returns a reference to the triple for this instance.
const DataLayoutgetDataLayout () const
 Returns a reference to the DataLayout for this instance.
JITDylibgetMainJITDylib ()
 Returns a reference to the JITDylib representing the JIT'd main program.
JITDylibSP getProcessSymbolsJITDylib ()
 Returns the ProcessSymbols JITDylib, which by default reflects non-JIT'd symbols in the host process.
JITDylibSP getPlatformJITDylib ()
 Returns the Platform JITDylib, which will contain the ORC runtime (if given) and any platform symbols.
JITDylibgetJITDylibByName (StringRef Name)
 Returns the JITDylib with the given name, or nullptr if no JITDylib with that name exists.
Expected< JITDylib & > loadPlatformDynamicLibrary (const char *Path)
 Load a (real) dynamic library and make its symbols available through a new JITDylib with the same name.
Error linkStaticLibraryInto (JITDylib &JD, std::unique_ptr< MemoryBuffer > LibBuffer)
 Link a static library into the given JITDylib.
Error linkStaticLibraryInto (JITDylib &JD, const char *Path)
 Link a static library into the given JITDylib.
Expected< JITDylib & > createJITDylib (std::string Name)
 Create a new JITDylib with the given name and return a reference to it.
JITDylibSearchOrder defaultLinkOrder ()
 Returns the default link order for this LLJIT instance.
Error addIRModule (ResourceTrackerSP RT, ThreadSafeModule TSM)
 Adds an IR module with the given ResourceTracker.
Error addIRModule (JITDylib &JD, ThreadSafeModule TSM)
 Adds an IR module to the given JITDylib.
Error addIRModule (ThreadSafeModule TSM)
 Adds an IR module to the Main JITDylib.
Error addObjectFile (ResourceTrackerSP RT, std::unique_ptr< MemoryBuffer > Obj)
 Adds an object file to the given JITDylib.
Error addObjectFile (JITDylib &JD, std::unique_ptr< MemoryBuffer > Obj)
 Adds an object file to the given JITDylib.
Error addObjectFile (std::unique_ptr< MemoryBuffer > Obj)
 Adds an object file to the given JITDylib.
Expected< ExecutorAddrlookupLinkerMangled (JITDylib &JD, SymbolStringPtr Name)
 Look up a symbol in JITDylib JD by the symbol's linker-mangled name (to look up symbols based on their IR name use the lookup function instead).
Expected< ExecutorAddrlookupLinkerMangled (JITDylib &JD, StringRef Name)
 Look up a symbol in JITDylib JD by the symbol's linker-mangled name (to look up symbols based on their IR name use the lookup function instead).
Expected< ExecutorAddrlookupLinkerMangled (StringRef Name)
 Look up a symbol in the main JITDylib by the symbol's linker-mangled name (to look up symbols based on their IR name use the lookup function instead).
Expected< ExecutorAddrlookup (JITDylib &JD, StringRef UnmangledName)
 Look up a symbol in JITDylib JD based on its IR symbol name.
Expected< ExecutorAddrlookup (StringRef UnmangledName)
 Look up a symbol in the main JITDylib based on its IR symbol name.
void setPlatformSupport (std::unique_ptr< PlatformSupport > PS)
 Set the PlatformSupport instance.
PlatformSupportgetPlatformSupport ()
 Get the PlatformSupport instance.
Error initialize (JITDylib &JD)
 Run the initializers for the given JITDylib.
Error deinitialize (JITDylib &JD)
 Run the deinitializers for the given JITDylib.
ObjectLayergetObjLinkingLayer ()
 Returns a reference to the ObjLinkingLayer.
ObjectTransformLayergetObjTransformLayer ()
 Returns a reference to the object transform layer.
IRTransformLayergetIRTransformLayer ()
 Returns a reference to the IR transform layer.
IRCompileLayergetIRCompileLayer ()
 Returns a reference to the IR compile layer.
std::string mangle (StringRef UnmangledName) const
 Returns a linker-mangled version of UnmangledName.
SymbolStringPtr mangleAndIntern (StringRef UnmangledName) const
 Returns an interned, linker-mangled version of UnmangledName.

Friends

template<typename, typename, typename>
class LLJITBuilderSetters

Additional Inherited Members

Protected Member Functions inherited from llvm::orc::LLJIT
 LLJIT (LLJITBuilderState &S, Error &Err)
 Create an LLJIT instance with a single compile thread.
Error applyDataLayout (Module &M)
Static Protected Member Functions inherited from llvm::orc::LLJIT
static Expected< std::unique_ptr< ObjectLayer > > createObjectLinkingLayer (LLJITBuilderState &S, ExecutionSession &ES)
static Expected< std::unique_ptr< IRCompileLayer::IRCompiler > > createCompileFunction (LLJITBuilderState &S, JITTargetMachineBuilder JTMB)
Protected Attributes inherited from llvm::orc::LLJIT
std::unique_ptr< ExecutionSessionES
std::unique_ptr< PlatformSupportPS
JITDylibProcessSymbols = nullptr
JITDylibPlatform = nullptr
JITDylibMain = nullptr
JITDylibSearchOrder DefaultLinks
DataLayout DL
Triple TT
std::unique_ptr< ObjectLayerObjLinkingLayer
std::unique_ptr< ObjectTransformLayerObjTransformLayer
std::unique_ptr< IRCompileLayerCompileLayer
std::unique_ptr< IRTransformLayerTransformLayer
std::unique_ptr< IRTransformLayerInitHelperTransformLayer

Detailed Description

An extended version of LLJIT that supports lazy function-at-a-time compilation of LLVM IR.

Definition at line 269 of file LLJIT.h.

Member Function Documentation

◆ addLazyIRModule() [1/2]

Error llvm::orc::LLLazyJIT::addLazyIRModule ( JITDylib & JD,
ThreadSafeModule M )

Add a module to be lazily compiled to JITDylib JD.

Definition at line 1285 of file LLJIT.cpp.

References assert(), and llvm::orc::ThreadSafeModule::withModuleDo().

Referenced by addLazyIRModule().

◆ addLazyIRModule() [2/2]

Error llvm::orc::LLLazyJIT::addLazyIRModule ( ThreadSafeModule M)
inline

Add a module to be lazily compiled to the main JITDylib.

Definition at line 286 of file LLJIT.h.

References addLazyIRModule(), and llvm::orc::LLJIT::Main.

◆ getCompileOnDemandLayer()

CompileOnDemandLayer & llvm::orc::LLLazyJIT::getCompileOnDemandLayer ( )
inline

Returns a reference to the on-demand layer.

Definition at line 280 of file LLJIT.h.

◆ setPartitionFunction()

void llvm::orc::LLLazyJIT::setPartitionFunction ( IRPartitionLayer::PartitionFunction Partition)
inline

Sets the partition function.

Definition at line 275 of file LLJIT.h.

◆ LLJITBuilderSetters

template<typename, typename, typename>
friend class LLJITBuilderSetters
friend

Definition at line 270 of file LLJIT.h.

References LLJITBuilderSetters.

Referenced by LLJITBuilderSetters.


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