LLVM 20.0.0git
Public Member Functions | Friends | List of all members
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:
Inheritance graph
[legend]

Public Member Functions

void setPartitionFunction (IRPartitionLayer::PartitionFunction Partition)
 Sets the partition function.
 
CompileOnDemandLayergetCompileOnDemandLayer ()
 Returns a reference to the on-demand layer.
 
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)
 
void recordCtorDtors (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 270 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 1254 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 287 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 281 of file LLJIT.h.

◆ setPartitionFunction()

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

Sets the partition function.

Definition at line 276 of file LLJIT.h.

Friends And Related Function Documentation

◆ LLJITBuilderSetters

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

Definition at line 271 of file LLJIT.h.


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