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 append_emitted_note_hash (bb::avm2::FF note_hash)
 
std::optional< bb::avm2::FFget_emitted_note_hash (uint16_t note_hash_index)
 
std::optional< uint16_t > get_leaf_index (uint16_t note_hash_index)
 

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 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
 
std::vector< bb::avm2::FFemitted_note_hashes
 

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_emitted_note_hash()

void MemoryManager::append_emitted_note_hash ( bb::avm2::FF  note_hash)

Definition at line 291 of file memory_manager.cpp.

◆ append_slot()

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

Definition at line 278 of file memory_manager.cpp.

◆ get_emitted_note_hash()

std::optional< bb::avm2::FF > MemoryManager::get_emitted_note_hash ( uint16_t  note_hash_index)

Definition at line 296 of file memory_manager.cpp.

◆ get_leaf_index()

std::optional< uint16_t > MemoryManager::get_leaf_index ( uint16_t  note_hash_index)

Definition at line 304 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 170 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 268 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 258 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 245 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 221 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 229 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 213 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 189 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 197 of file memory_manager.cpp.

◆ get_slot()

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

Definition at line 283 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  max_value 
)
private

Definition at line 253 of file memory_manager.cpp.

◆ is_memory_address_set()

bool MemoryManager::is_memory_address_set ( uint16_t  address)

Definition at line 71 of file memory_manager.cpp.

◆ operator=() [1/2]

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

Definition at line 62 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 131 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 94 of file memory_manager.cpp.

◆ set_memory_address()

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

Definition at line 76 of file memory_manager.cpp.

Member Data Documentation

◆ emitted_note_hashes

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

Definition at line 22 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: