LLVM  10.0.0svn
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]
Collaboration diagram for llvm::orc::LLLazyJIT:
Collaboration graph
[legend]

Public Member Functions

void setLazyCompileTransform (IRTransformLayer::TransformFunction Transform)
 Set an IR transform (e.g. More...
 
void setPartitionFunction (CompileOnDemandLayer::PartitionFunction Partition)
 Sets the partition function. More...
 
Error addLazyIRModule (JITDylib &JD, ThreadSafeModule M)
 Add a module to be lazily compiled to JITDylib JD. More...
 
Error addLazyIRModule (ThreadSafeModule M)
 Add a module to be lazily compiled to the main JITDylib. More...
 
- Public Member Functions inherited from llvm::orc::LLJIT
 ~LLJIT ()
 Destruct this instance. More...
 
ExecutionSessiongetExecutionSession ()
 Returns the ExecutionSession for this instance. More...
 
const DataLayoutgetDataLayout () const
 Returns a reference to the DataLayout for this instance. More...
 
JITDylibgetMainJITDylib ()
 Returns a reference to the JITDylib representing the JIT'd main program. More...
 
JITDylibgetJITDylibByName (StringRef Name)
 Returns the JITDylib with the given name, or nullptr if no JITDylib with that name exists. More...
 
JITDylibcreateJITDylib (std::string Name)
 Create a new JITDylib with the given name and return a reference to it. More...
 
Error defineAbsolute (StringRef Name, JITEvaluatedSymbol Address)
 Convenience method for defining an absolute symbol. More...
 
Error addIRModule (JITDylib &JD, ThreadSafeModule TSM)
 Adds an IR module to the given JITDylib. More...
 
Error addIRModule (ThreadSafeModule TSM)
 Adds an IR module to the Main JITDylib. More...
 
Error addObjectFile (JITDylib &JD, std::unique_ptr< MemoryBuffer > Obj)
 Adds an object file to the given JITDylib. More...
 
Error addObjectFile (std::unique_ptr< MemoryBuffer > Obj)
 Adds an object file to the given JITDylib. More...
 
Expected< JITEvaluatedSymbollookupLinkerMangled (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). More...
 
Expected< JITEvaluatedSymbollookupLinkerMangled (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). More...
 
Expected< JITEvaluatedSymbollookup (JITDylib &JD, StringRef UnmangledName)
 Look up a symbol in JITDylib JD based on its IR symbol name. More...
 
Expected< JITEvaluatedSymbollookup (StringRef UnmangledName)
 Look up a symbol in the main JITDylib based on its IR symbol name. More...
 
Error runConstructors ()
 Runs all not-yet-run static constructors. More...
 
Error runDestructors ()
 Runs all not-yet-run static destructors. More...
 
ObjectLayergetObjLinkingLayer ()
 Returns a reference to the ObjLinkingLayer. More...
 

Friends

template<typename , typename , typename >
class LLJITBuilderSetters
 

Additional Inherited Members

- Static Public Member Functions inherited from llvm::orc::LLJIT
static Expected< std::unique_ptr< LLJIT > > Create (LLJITBuilderState &S)
 
- Protected Member Functions inherited from llvm::orc::LLJIT
 LLJIT (LLJITBuilderState &S, Error &Err)
 Create an LLJIT instance with a single compile thread. More...
 
std::string mangle (StringRef UnmangledName)
 
Error applyDataLayout (Module &M)
 
void recordCtorDtors (Module &M)
 
- Static Protected Member Functions inherited from llvm::orc::LLJIT
static std::unique_ptr< ObjectLayercreateObjectLinkingLayer (LLJITBuilderState &S, ExecutionSession &ES)
 
static Expected< IRCompileLayer::CompileFunctioncreateCompileFunction (LLJITBuilderState &S, JITTargetMachineBuilder JTMB)
 
- Protected Attributes inherited from llvm::orc::LLJIT
std::unique_ptr< ExecutionSessionES
 
JITDylibMain
 
DataLayout DL
 
std::unique_ptr< ThreadPoolCompileThreads
 
std::unique_ptr< ObjectLayerObjLinkingLayer
 
std::unique_ptr< IRCompileLayerCompileLayer
 
CtorDtorRunner CtorRunner
 
CtorDtorRunner DtorRunner
 

Detailed Description

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

Definition at line 150 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 176 of file LLJIT.cpp.

References assert().

◆ 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 171 of file LLJIT.h.

References llvm::orc::LLJIT::Main.

◆ setLazyCompileTransform()

void llvm::orc::LLLazyJIT::setLazyCompileTransform ( IRTransformLayer::TransformFunction  Transform)
inline

Set an IR transform (e.g.

pass manager pipeline) to run on each function when it is compiled.

Definition at line 157 of file LLJIT.h.

◆ setPartitionFunction()

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

Sets the partition function.

Definition at line 163 of file LLJIT.h.

Friends And Related Function Documentation

◆ LLJITBuilderSetters

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

Definition at line 151 of file LLJIT.h.


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