ETISS 0.8.0
Extendable Translating Instruction Set Simulator (version 0.8.0)
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
Public Member Functions | Static Public Member Functions | Private Attributes | List of all members
OrcJit Class Reference
Collaboration diagram for OrcJit:
Collaboration graph
[legend]

Public Member Functions

 OrcJit (llvm::orc::JITTargetMachineBuilder JTMB, llvm::DataLayout DL)
 
const llvm::DataLayout & getDataLayout () const
 
llvm::LLVMContext & getContext ()
 
void addModule (std::unique_ptr< llvm::Module > M)
 
llvm::Expected< llvm::JITEvaluatedSymbol > lookup (llvm::StringRef Name)
 
bool loadLib (const std::string &libName, const std::set< std::string > &libPaths)
 

Static Public Member Functions

static llvm::Expected< std::unique_ptr< OrcJit > > Create ()
 
static llvm::orc::ThreadSafeModule optimizeModule (llvm::orc::ThreadSafeModule TSM, const llvm::orc::MaterializationResponsibility &R)
 

Private Attributes

llvm::orc::ExecutionSession ES
 
llvm::orc::RTDyldObjectLinkingLayer ObjectLayer
 
llvm::orc::IRCompileLayer CompileLayer
 
llvm::orc::IRTransformLayer OptimizeLayer
 
llvm::DataLayout DL
 
llvm::orc::MangleAndInterner Mangle
 
llvm::orc::ThreadSafeContext Ctx
 
llvm::orc::JITDylib & MainJITDylib
 

Detailed Description

Definition at line 80 of file LLVMJIT.cpp.

Constructor & Destructor Documentation

◆ OrcJit()

OrcJit::OrcJit ( llvm::orc::JITTargetMachineBuilder  JTMB,
llvm::DataLayout  DL 
)
inline

Definition at line 83 of file LLVMJIT.cpp.

Member Function Documentation

◆ addModule()

void OrcJit::addModule ( std::unique_ptr< llvm::Module >  M)
inline

Definition at line 112 of file LLVMJIT.cpp.

References Ctx, MainJITDylib, and OptimizeLayer.

Referenced by etiss::LLVMJIT::translate().

Here is the caller graph for this function:

◆ Create()

static llvm::Expected< std::unique_ptr< OrcJit > > OrcJit::Create ( )
inlinestatic

Definition at line 96 of file LLVMJIT.cpp.

References DL.

Referenced by etiss::LLVMJIT::LLVMJIT().

Here is the caller graph for this function:

◆ getContext()

llvm::LLVMContext & OrcJit::getContext ( )
inline

Definition at line 110 of file LLVMJIT.cpp.

References Ctx.

Referenced by etiss::LLVMJIT::translate().

Here is the caller graph for this function:

◆ getDataLayout()

const llvm::DataLayout & OrcJit::getDataLayout ( ) const
inline

Definition at line 109 of file LLVMJIT.cpp.

References DL.

◆ loadLib()

bool OrcJit::loadLib ( const std::string &  libName,
const std::set< std::string > &  libPaths 
)
inline

Definition at line 122 of file LLVMJIT.cpp.

References DL, and MainJITDylib.

Referenced by etiss::LLVMJIT::translate().

Here is the caller graph for this function:

◆ lookup()

llvm::Expected< llvm::JITEvaluatedSymbol > OrcJit::lookup ( llvm::StringRef  Name)
inline

Definition at line 117 of file LLVMJIT.cpp.

References ES, MainJITDylib, and Mangle.

Referenced by etiss::LLVMJIT::getFunction().

Here is the caller graph for this function:

◆ optimizeModule()

static llvm::orc::ThreadSafeModule OrcJit::optimizeModule ( llvm::orc::ThreadSafeModule  TSM,
const llvm::orc::MaterializationResponsibility &  R 
)
inlinestatic

Definition at line 138 of file LLVMJIT.cpp.

Member Data Documentation

◆ CompileLayer

llvm::orc::IRCompileLayer OrcJit::CompileLayer
private

Definition at line 165 of file LLVMJIT.cpp.

◆ Ctx

llvm::orc::ThreadSafeContext OrcJit::Ctx
private

Definition at line 170 of file LLVMJIT.cpp.

Referenced by addModule(), and getContext().

◆ DL

llvm::DataLayout OrcJit::DL
private

Definition at line 168 of file LLVMJIT.cpp.

Referenced by Create(), getDataLayout(), and loadLib().

◆ ES

llvm::orc::ExecutionSession OrcJit::ES
private

Definition at line 163 of file LLVMJIT.cpp.

Referenced by lookup().

◆ MainJITDylib

llvm::orc::JITDylib& OrcJit::MainJITDylib
private

Definition at line 171 of file LLVMJIT.cpp.

Referenced by addModule(), loadLib(), and lookup().

◆ Mangle

llvm::orc::MangleAndInterner OrcJit::Mangle
private

Definition at line 169 of file LLVMJIT.cpp.

Referenced by lookup().

◆ ObjectLayer

llvm::orc::RTDyldObjectLinkingLayer OrcJit::ObjectLayer
private

Definition at line 164 of file LLVMJIT.cpp.

◆ OptimizeLayer

llvm::orc::IRTransformLayer OrcJit::OptimizeLayer
private

Definition at line 166 of file LLVMJIT.cpp.

Referenced by addModule().


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