Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
MemoryManager Class Reference

#include <memory_manager.hpp>

Public Member Functions

 MemoryManager ()=default
 
 MemoryManager (const MemoryManager &other)=default
 
MemoryManageroperator= (const MemoryManager &other)
 
 MemoryManager (MemoryManager &&other)=default
 
MemoryManageroperator= (MemoryManager &&other)=default
 
 ~MemoryManager ()=default
 
void set_memory_address (bb::avm2::MemoryTag tag, uint32_t address)
 
std::optional< uint16_t > get_memory_offset_16 (bb::avm2::MemoryTag tag, uint32_t address_index)
 
std::optional< uint8_t > get_memory_offset_8 (bb::avm2::MemoryTag tag, uint32_t address_index)
 
bool is_memory_address_set (uint16_t address)
 
std::optional< std::pair< ResolvedAddress, bb::avm2::testing::OperandBuilder > > get_resolved_address_and_operand_8 (ParamRef address)
 
std::optional< std::pair< ResolvedAddress, bb::avm2::testing::OperandBuilder > > get_resolved_address_and_operand_8 (VariableRef address)
 
std::optional< std::pair< ResolvedAddress, bb::avm2::testing::OperandBuilder > > get_resolved_address_and_operand_8 (AddressRef address)
 
std::optional< std::pair< ResolvedAddress, bb::avm2::testing::OperandBuilder > > get_resolved_address_and_operand_16 (ParamRef address)
 
std::optional< std::pair< ResolvedAddress, bb::avm2::testing::OperandBuilder > > get_resolved_address_and_operand_16 (VariableRef address)
 
std::optional< std::pair< ResolvedAddress, bb::avm2::testing::OperandBuilder > > get_resolved_address_and_operand_16 (AddressRef address)
 
void append_slot (bb::avm2::FF slot)
 
std::optional< bb::avm2::FFget_slot (uint16_t slot_offset_index)
 
void set_base_offset (uint32_t base_offset)
 

Private Member Functions

bb::avm2::testing::OperandBuilder get_memory_address_operand (bb::avm2::testing::OperandBuilder operand, AddressingMode mode)
 
ResolvedAddress resolve_address (VariableRef address, uint32_t absolute_address, uint32_t max_operand_address)
 
ResolvedAddress resolve_address (AddressRef address, uint32_t max_operand_address)
 
std::optional< uint32_t > get_variable_address (bb::avm2::MemoryTag tag, uint32_t index, uint32_t min_value, uint32_t max_value)
 

Private Attributes

std::map< bb::avm2::MemoryTag, std::vector< uint32_t > > stored_variables
 
std::map< uint32_t, bb::avm2::MemoryTagmemory_address_to_tag
 
std::vector< bb::avm2::FFstorage_addresses
 
uint32_t base_offset = 0
 

Detailed Description

Definition at line 12 of file memory_manager.hpp.

Constructor & Destructor Documentation

◆ MemoryManager() [1/3]

MemoryManager::MemoryManager ( )
default

◆ MemoryManager() [2/3]

MemoryManager::MemoryManager ( const MemoryManager other)
default

◆ MemoryManager() [3/3]

MemoryManager::MemoryManager ( MemoryManager &&  other)
default

◆ ~MemoryManager()

MemoryManager::~MemoryManager ( )
default

Member Function Documentation

◆ append_slot()

void MemoryManager::append_slot ( bb::avm2::FF  slot)

Definition at line 294 of file memory_manager.cpp.

◆ get_memory_address_operand()

OperandBuilder MemoryManager::get_memory_address_operand ( bb::avm2::testing::OperandBuilder  operand,
AddressingMode  mode 
)
private

Definition at line 178 of file memory_manager.cpp.

◆ get_memory_offset_16()

std::optional< uint16_t > MemoryManager::get_memory_offset_16 ( bb::avm2::MemoryTag  tag,
uint32_t  address_index 
)

Definition at line 285 of file memory_manager.cpp.

◆ get_memory_offset_8()

std::optional< uint8_t > MemoryManager::get_memory_offset_8 ( bb::avm2::MemoryTag  tag,
uint32_t  address_index 
)

Definition at line 276 of file memory_manager.cpp.

◆ get_resolved_address_and_operand_16() [1/3]

std::optional< std::pair< ResolvedAddress, bb::avm2::testing::OperandBuilder > > MemoryManager::get_resolved_address_and_operand_16 ( AddressRef  address)

Definition at line 256 of file memory_manager.cpp.

◆ get_resolved_address_and_operand_16() [2/3]

std::optional< std::pair< ResolvedAddress, bb::avm2::testing::OperandBuilder > > MemoryManager::get_resolved_address_and_operand_16 ( ParamRef  address)

Definition at line 231 of file memory_manager.cpp.

◆ get_resolved_address_and_operand_16() [3/3]

std::optional< std::pair< ResolvedAddress, bb::avm2::testing::OperandBuilder > > MemoryManager::get_resolved_address_and_operand_16 ( VariableRef  address)

Definition at line 239 of file memory_manager.cpp.

◆ get_resolved_address_and_operand_8() [1/3]

std::optional< std::pair< ResolvedAddress, bb::avm2::testing::OperandBuilder > > MemoryManager::get_resolved_address_and_operand_8 ( AddressRef  address)

Definition at line 222 of file memory_manager.cpp.

◆ get_resolved_address_and_operand_8() [2/3]

std::optional< std::pair< ResolvedAddress, bb::avm2::testing::OperandBuilder > > MemoryManager::get_resolved_address_and_operand_8 ( ParamRef  address)

Definition at line 197 of file memory_manager.cpp.

◆ get_resolved_address_and_operand_8() [3/3]

std::optional< std::pair< ResolvedAddress, bb::avm2::testing::OperandBuilder > > MemoryManager::get_resolved_address_and_operand_8 ( VariableRef  address)

Definition at line 205 of file memory_manager.cpp.

◆ get_slot()

std::optional< bb::avm2::FF > MemoryManager::get_slot ( uint16_t  slot_offset_index)

Definition at line 299 of file memory_manager.cpp.

◆ get_variable_address()

std::optional< uint32_t > MemoryManager::get_variable_address ( bb::avm2::MemoryTag  tag,
uint32_t  index,
uint32_t  min_value,
uint32_t  max_value 
)
private

Definition at line 265 of file memory_manager.cpp.

◆ is_memory_address_set()

bool MemoryManager::is_memory_address_set ( uint16_t  address)

Definition at line 81 of file memory_manager.cpp.

◆ operator=() [1/2]

MemoryManager & MemoryManager::operator= ( const MemoryManager other)

Definition at line 72 of file memory_manager.cpp.

◆ operator=() [2/2]

MemoryManager & MemoryManager::operator= ( MemoryManager &&  other)
default

◆ resolve_address() [1/2]

ResolvedAddress MemoryManager::resolve_address ( AddressRef  address,
uint32_t  max_operand_address 
)
private

Definition at line 141 of file memory_manager.cpp.

◆ resolve_address() [2/2]

ResolvedAddress MemoryManager::resolve_address ( VariableRef  address,
uint32_t  absolute_address,
uint32_t  max_operand_address 
)
private

Definition at line 104 of file memory_manager.cpp.

◆ set_base_offset()

void MemoryManager::set_base_offset ( uint32_t  base_offset)

Definition at line 307 of file memory_manager.cpp.

◆ set_memory_address()

void MemoryManager::set_memory_address ( bb::avm2::MemoryTag  tag,
uint32_t  address 
)

Definition at line 86 of file memory_manager.cpp.

Member Data Documentation

◆ base_offset

uint32_t MemoryManager::base_offset = 0
private

Definition at line 31 of file memory_manager.hpp.

◆ memory_address_to_tag

std::map<uint32_t, bb::avm2::MemoryTag> MemoryManager::memory_address_to_tag
private

Definition at line 17 of file memory_manager.hpp.

◆ storage_addresses

std::vector<bb::avm2::FF> MemoryManager::storage_addresses
private

Definition at line 20 of file memory_manager.hpp.

◆ stored_variables

std::map<bb::avm2::MemoryTag, std::vector<uint32_t> > MemoryManager::stored_variables
private

Definition at line 15 of file memory_manager.hpp.


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