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

#include <Array.h>

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

Public Member Functions

 Array (IRBuilder &_builder, char const *_name)
 
 Array (IRBuilder &_builder, llvm::Value *_array)
 
void push (llvm::Value *_value)
 
void set (llvm::Value *_index, llvm::Value *_value)
 
llvm::Value * get (llvm::Value *_index)
 
void pop (llvm::Value *_count)
 
llvm::Value * size (llvm::Value *_array=nullptr)
 
void free ()
 
void extend (llvm::Value *_arrayPtr, llvm::Value *_size)
 
llvm::Value * getPtr (llvm::Value *_arrayPtr, llvm::Value *_index)
 
llvm::Value * getPointerTo () const
 

Static Public Member Functions

static llvm::Type * getType ()
 

Private Member Functions

llvm::Function * createArrayPushFunc ()
 
llvm::Function * createArraySetFunc ()
 
llvm::Function * createArrayGetFunc ()
 
llvm::Function * createGetPtrFunc ()
 
llvm::Function * createFreeFunc ()
 
llvm::Function * createExtendFunc ()
 
llvm::Function * getReallocFunc ()
 

Private Attributes

llvm::Value * m_array = nullptr
 
LazyFunction m_pushFunc = {[this](){ return createArrayPushFunc(); }}
 
LazyFunction m_setFunc = {[this](){ return createArraySetFunc(); }}
 
LazyFunction m_getPtrFunc = {[this](){ return createGetPtrFunc(); }}
 
LazyFunction m_getFunc = {[this](){ return createArrayGetFunc(); }}
 
LazyFunction m_freeFunc = {[this](){ return createFreeFunc(); }}
 
LazyFunction m_extendFunc = {[this](){ return createExtendFunc(); }}
 
LazyFunction m_reallocFunc = {[this](){ return getReallocFunc(); }}
 

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 30 of file Array.h.

Constructor & Destructor Documentation

dev::eth::jit::Array::Array ( IRBuilder _builder,
char const *  _name 
)

Definition at line 224 of file Array.cpp.

Here is the call graph for this function:

dev::eth::jit::Array::Array ( IRBuilder _builder,
llvm::Value *  _array 
)

Definition at line 231 of file Array.cpp.

Here is the call graph for this function:

Member Function Documentation

llvm::Function * dev::eth::jit::Array::createArrayGetFunc ( )
private

Definition at line 104 of file Array.cpp.

llvm::Function * dev::eth::jit::Array::createArrayPushFunc ( )
private

Definition at line 28 of file Array.cpp.

llvm::Function * dev::eth::jit::Array::createArraySetFunc ( )
private

Definition at line 79 of file Array.cpp.

llvm::Function * dev::eth::jit::Array::createExtendFunc ( )
private

Definition at line 186 of file Array.cpp.

llvm::Function * dev::eth::jit::Array::createFreeFunc ( )
private

Definition at line 150 of file Array.cpp.

llvm::Function * dev::eth::jit::Array::createGetPtrFunc ( )
private

Definition at line 127 of file Array.cpp.

void dev::eth::jit::Array::extend ( llvm::Value *  _arrayPtr,
llvm::Value *  _size 
)

Definition at line 253 of file Array.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

void dev::eth::jit::Array::free ( )
inline

Definition at line 41 of file Array.h.

Here is the call graph for this function:

llvm::Value* dev::eth::jit::Array::get ( llvm::Value *  _index)
inline

Definition at line 38 of file Array.h.

llvm::Value* dev::eth::jit::Array::getPointerTo ( ) const
inline

Definition at line 46 of file Array.h.

llvm::Value* dev::eth::jit::Array::getPtr ( llvm::Value *  _arrayPtr,
llvm::Value *  _index 
)
inline

Definition at line 44 of file Array.h.

Here is the caller graph for this function:

llvm::Function * dev::eth::jit::Array::getReallocFunc ( )
private

Definition at line 173 of file Array.cpp.

llvm::Type * dev::eth::jit::Array::getType ( )
static

Definition at line 217 of file Array.cpp.

Here is the caller graph for this function:

void dev::eth::jit::Array::pop ( llvm::Value *  _count)

Definition at line 239 of file Array.cpp.

Here is the call graph for this function:

void dev::eth::jit::Array::push ( llvm::Value *  _value)
inline

Definition at line 36 of file Array.h.

void dev::eth::jit::Array::set ( llvm::Value *  _index,
llvm::Value *  _value 
)
inline

Definition at line 37 of file Array.h.

llvm::Value * dev::eth::jit::Array::size ( llvm::Value *  _array = nullptr)

Definition at line 247 of file Array.cpp.

Here is the call graph for this function:

Here is the caller graph for this function:

Member Data Documentation

llvm::Value* dev::eth::jit::Array::m_array = nullptr
private

Definition at line 51 of file Array.h.

LazyFunction dev::eth::jit::Array::m_extendFunc = {[this](){ return createExtendFunc(); }}
private

Definition at line 66 of file Array.h.

LazyFunction dev::eth::jit::Array::m_freeFunc = {[this](){ return createFreeFunc(); }}
private

Definition at line 65 of file Array.h.

LazyFunction dev::eth::jit::Array::m_getFunc = {[this](){ return createArrayGetFunc(); }}
private

Definition at line 64 of file Array.h.

LazyFunction dev::eth::jit::Array::m_getPtrFunc = {[this](){ return createGetPtrFunc(); }}
private

Definition at line 63 of file Array.h.

LazyFunction dev::eth::jit::Array::m_pushFunc = {[this](){ return createArrayPushFunc(); }}
private

Definition at line 61 of file Array.h.

LazyFunction dev::eth::jit::Array::m_reallocFunc = {[this](){ return getReallocFunc(); }}
private

Definition at line 67 of file Array.h.

LazyFunction dev::eth::jit::Array::m_setFunc = {[this](){ return createArraySetFunc(); }}
private

Definition at line 62 of file Array.h.


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