Fabcoin Core  0.16.2
P2P Digital Currency
Public Member Functions | Static Public Member Functions | Static Public Attributes | Private Member Functions | Private Attributes | List of all members
dev::eth::jit::RuntimeManager Class Reference

#include <RuntimeManager.h>

Inheritance diagram for dev::eth::jit::RuntimeManager:
[legend]
Collaboration diagram for dev::eth::jit::RuntimeManager:
[legend]

Public Member Functions

 RuntimeManager (IRBuilder &_builder, code_iterator _codeBegin, code_iterator _codeEnd)
 
llvm::Value * getRuntimePtr ()
 
llvm::Value * getDataPtr ()
 
llvm::Value * getEnvPtr ()
 
llvm::Value * getValue ()
 
llvm::Value * getGas ()
 
llvm::Value * getGasPtr ()
 
llvm::Value * getCallData ()
 
llvm::Value * getCode ()
 
llvm::Value * getCodeSize ()
 
llvm::Value * getCallDataSize ()
 
llvm::Value * getJmpBuf ()
 
void setGas (llvm::Value *_gas)
 
llvm::Value * getMem ()
 
void registerReturnData (llvm::Value *_index, llvm::Value *_size)
 
void exit (ReturnCode _returnCode)
 
void abort (llvm::Value *_jmpBuf)
 
llvm::Value * getStackBase () const
 
llvm::Value * getStackSize () const
 
void setJmpBuf (llvm::Value *_jmpBuf)
 
void setExitBB (llvm::BasicBlock *_bb)
 

Static Public Member Functions

static llvm::StructType * getRuntimeType ()
 
static llvm::StructType * getRuntimeDataType ()
 

Static Public Attributes

static const size_t stackSizeLimit = 1024
 

Private Member Functions

llvm::Value * getPtr (RuntimeData::Index _index)
 
void set (RuntimeData::Index _index, llvm::Value *_value)
 

Private Attributes

llvm::Value * m_jmpBuf = nullptr
 
llvm::Value * m_dataPtr = nullptr
 
llvm::Value * m_gasPtr = nullptr
 
llvm::Value * m_memPtr = nullptr
 
llvm::Value * m_envPtr = nullptr
 
std::array< llvm::Value *, RuntimeData::numElementsm_dataElts
 
llvm::Value * m_stackBase = nullptr
 
llvm::Value * m_stackSize = nullptr
 
llvm::BasicBlock * m_exitBB = nullptr
 
code_iterator m_codeBegin = {}
 
code_iterator m_codeEnd = {}
 
llvm::Value * m_codePtr = nullptr
 

Additional Inherited Members

- Protected Member Functions inherited from dev::eth::jit::CompilerHelper
 CompilerHelper (IRBuilder &_builder)
 
 CompilerHelper (const CompilerHelper &)=delete
 
CompilerHelperoperator= (CompilerHelper)=delete
 
llvm::Module * getModule ()
 Reference to the IR module being compiled. More...
 
llvm::Function * getMainFunction ()
 Reference to the main module function. More...
 
- Protected Attributes inherited from dev::eth::jit::CompilerHelper
IRBuilderm_builder
 Reference to parent compiler IR builder. More...
 

Detailed Description

Definition at line 17 of file RuntimeManager.h.

Constructor & Destructor Documentation

dev::eth::jit::RuntimeManager::RuntimeManager ( IRBuilder _builder,
code_iterator  _codeBegin,
code_iterator  _codeEnd 
)

Definition at line 72 of file RuntimeManager.cpp.

Here is the call graph for this function:

Member Function Documentation

void dev::eth::jit::RuntimeManager::abort ( llvm::Value *  _jmpBuf)

Definition at line 181 of file RuntimeManager.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void dev::eth::jit::RuntimeManager::exit ( ReturnCode  _returnCode)

Definition at line 174 of file RuntimeManager.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

llvm::Value * dev::eth::jit::RuntimeManager::getCallData ( )

Definition at line 187 of file RuntimeManager.cpp.

llvm::Value * dev::eth::jit::RuntimeManager::getCallDataSize ( )

Definition at line 206 of file RuntimeManager.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

llvm::Value * dev::eth::jit::RuntimeManager::getCode ( )

Definition at line 192 of file RuntimeManager.cpp.

llvm::Value * dev::eth::jit::RuntimeManager::getCodeSize ( )

Definition at line 201 of file RuntimeManager.cpp.

Here is the call graph for this function:

llvm::Value * dev::eth::jit::RuntimeManager::getDataPtr ( )

Definition at line 127 of file RuntimeManager.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

llvm::Value * dev::eth::jit::RuntimeManager::getEnvPtr ( )

Definition at line 138 of file RuntimeManager.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

llvm::Value * dev::eth::jit::RuntimeManager::getGas ( )

Definition at line 213 of file RuntimeManager.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

llvm::Value * dev::eth::jit::RuntimeManager::getGasPtr ( )

Definition at line 218 of file RuntimeManager.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

llvm::Value* dev::eth::jit::RuntimeManager::getJmpBuf ( )
inline

Definition at line 33 of file RuntimeManager.h.

Here is the caller graph for this function:

llvm::Value * dev::eth::jit::RuntimeManager::getMem ( )

Definition at line 224 of file RuntimeManager.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

llvm::Value * dev::eth::jit::RuntimeManager::getPtr ( RuntimeData::Index  _index)
private

Definition at line 144 of file RuntimeManager.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

llvm::StructType * dev::eth::jit::RuntimeManager::getRuntimeDataType ( )
static

Definition at line 18 of file RuntimeManager.cpp.

Here is the caller graph for this function:

llvm::Value * dev::eth::jit::RuntimeManager::getRuntimePtr ( )

Definition at line 118 of file RuntimeManager.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

llvm::StructType * dev::eth::jit::RuntimeManager::getRuntimeType ( )
static

Definition at line 38 of file RuntimeManager.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

llvm::Value* dev::eth::jit::RuntimeManager::getStackBase ( ) const
inline

Definition at line 44 of file RuntimeManager.h.

Here is the caller graph for this function:

llvm::Value* dev::eth::jit::RuntimeManager::getStackSize ( ) const
inline

Definition at line 45 of file RuntimeManager.h.

Here is the caller graph for this function:

llvm::Value * dev::eth::jit::RuntimeManager::getValue ( )

Definition at line 151 of file RuntimeManager.cpp.

void dev::eth::jit::RuntimeManager::registerReturnData ( llvm::Value *  _index,
llvm::Value *  _size 
)

Definition at line 163 of file RuntimeManager.cpp.

Here is the call graph for this function:

void dev::eth::jit::RuntimeManager::set ( RuntimeData::Index  _index,
llvm::Value *  _value 
)
private

Definition at line 156 of file RuntimeManager.cpp.

Here is the call graph for this function:

void dev::eth::jit::RuntimeManager::setExitBB ( llvm::BasicBlock *  _bb)
inline

Definition at line 48 of file RuntimeManager.h.

void dev::eth::jit::RuntimeManager::setGas ( llvm::Value *  _gas)

Definition at line 230 of file RuntimeManager.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void dev::eth::jit::RuntimeManager::setJmpBuf ( llvm::Value *  _jmpBuf)
inline

Definition at line 47 of file RuntimeManager.h.

Here is the caller graph for this function:

Member Data Documentation

code_iterator dev::eth::jit::RuntimeManager::m_codeBegin = {}
private

Definition at line 73 of file RuntimeManager.h.

code_iterator dev::eth::jit::RuntimeManager::m_codeEnd = {}
private

Definition at line 74 of file RuntimeManager.h.

llvm::Value* dev::eth::jit::RuntimeManager::m_codePtr = nullptr
private

Definition at line 75 of file RuntimeManager.h.

std::array<llvm::Value*, RuntimeData::numElements> dev::eth::jit::RuntimeManager::m_dataElts
private

Definition at line 66 of file RuntimeManager.h.

llvm::Value* dev::eth::jit::RuntimeManager::m_dataPtr = nullptr
private

Definition at line 61 of file RuntimeManager.h.

llvm::Value* dev::eth::jit::RuntimeManager::m_envPtr = nullptr
private

Definition at line 64 of file RuntimeManager.h.

llvm::BasicBlock* dev::eth::jit::RuntimeManager::m_exitBB = nullptr
private

Definition at line 71 of file RuntimeManager.h.

llvm::Value* dev::eth::jit::RuntimeManager::m_gasPtr = nullptr
private

Definition at line 62 of file RuntimeManager.h.

llvm::Value* dev::eth::jit::RuntimeManager::m_jmpBuf = nullptr
private

Definition at line 60 of file RuntimeManager.h.

llvm::Value* dev::eth::jit::RuntimeManager::m_memPtr = nullptr
private

Definition at line 63 of file RuntimeManager.h.

llvm::Value* dev::eth::jit::RuntimeManager::m_stackBase = nullptr
private

Definition at line 68 of file RuntimeManager.h.

llvm::Value* dev::eth::jit::RuntimeManager::m_stackSize = nullptr
private

Definition at line 69 of file RuntimeManager.h.

const size_t dev::eth::jit::RuntimeManager::stackSizeLimit = 1024
static

Definition at line 54 of file RuntimeManager.h.


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