Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
control_flow_vec.cpp
Go to the documentation of this file.
2
8
13
18
34
39
55
60
65
70
95
97{
100 [&](JumpToNewBlock& instr) { mutate_jump_to_new_block(instr, rng); },
101 [&](JumpIfToNewBlock& instr) { mutate_jump_if_to_new_block(instr, rng); },
102 [&](JumpToBlock& instr) { mutate_jump_to_block(instr, rng); },
103 [&](JumpIfToBlock& instr) { mutate_jump_if_to_block(instr, rng); },
104 [&](FinalizeWithReturn& instr) { mutate_finalize_with_return(instr, rng); },
106 [&](InsertInternalCall& instr) { mutate_insert_internal_call(instr, rng); } },
107 cfg_instruction);
108}
109
110void mutate_control_flow_vec(std::vector<CFGInstruction>& control_flow_vec, std::mt19937_64& rng)
111{
114}
T select(std::mt19937_64 &rng) const
constexpr ReturnOptionsMutationConfig BASIC_RETURN_OPTIONS_MUTATION_CONFIGURATION
constexpr JumpIfMutationConfig BASIC_JUMP_IF_MUTATION_CONFIGURATION
JumpIfToBlockMutationOptions
constexpr MemoryTagGenerationConfig BASIC_MEMORY_TAG_GENERATION_CONFIGURATION
CFGInstructionGenerationOptions
constexpr Uint16MutationConfig BASIC_UINT16_T_MUTATION_CONFIGURATION
JumpIfMutationOptions
@ else_program_block_instruction_block_idx
@ then_program_block_instruction_block_idx
constexpr VecMutationConfig BASIC_VEC_MUTATION_CONFIGURATION
constexpr JumpIfToBlockMutationConfig BASIC_JUMP_IF_TO_BLOCK_MUTATION_CONFIGURATION
constexpr CFGInstructionGenerationConfig BASIC_CFG_INSTRUCTION_GENERATION_CONFIGURATION
std::variant< InsertSimpleInstructionBlock, JumpToNewBlock, JumpIfToNewBlock, JumpToBlock, JumpIfToBlock, FinalizeWithReturn, SwitchToNonTerminatedBlock, InsertInternalCall > CFGInstruction
void mutate_insert_internal_call(InsertInternalCall &instr, std::mt19937_64 &rng)
void mutate_insert_simple_instruction_block(InsertSimpleInstructionBlock &instr, std::mt19937_64 &rng)
void mutate_jump_to_block(JumpToBlock &instr, std::mt19937_64 &rng)
void mutate_switch_to_non_terminated_block(SwitchToNonTerminatedBlock &instr, std::mt19937_64 &rng)
void mutate_jump_if_to_block(JumpIfToBlock &instr, std::mt19937_64 &rng)
void mutate_jump_if_to_new_block(JumpIfToNewBlock &instr, std::mt19937_64 &rng)
CFGInstruction generate_cfg_instruction(std::mt19937_64 &rng)
void mutate_control_flow_vec(std::vector< CFGInstruction > &control_flow_vec, std::mt19937_64 &rng)
void mutate_jump_to_new_block(JumpToNewBlock &instr, std::mt19937_64 &rng)
void mutate_finalize_with_return(FinalizeWithReturn &instr, std::mt19937_64 &rng)
void mutate_cfg_instruction(CFGInstruction &cfg_instruction, std::mt19937_64 &rng)
MemoryTag generate_memory_tag(std::mt19937_64 &rng, const MemoryTagGenerationConfig &config)
Definition memory_tag.cpp:8
constexpr decltype(auto) get(::tuplet::tuple< T... > &&t) noexcept
Definition tuple.hpp:13
void mutate_return_options(ReturnOptions &return_options, std::mt19937_64 &rng, const ReturnOptionsMutationConfig &config)
finalizes the current block with Return and switches to the first non-terminated block
ReturnOptions return_options
inserts INTERNALCALL instruction to the current block creates a new block and sets it as the current ...
uint16_t target_program_block_instruction_block_idx
insert instruction block to the current block
finalizes the current block with a JumpI and Jump instructions to the block, which does not create a ...
uint16_t condition_offset_index
uint16_t target_then_block_idx
uint16_t target_else_block_idx
finalizes the current block with jump if, creates two new blocks, sets the first as the then block an...
uint16_t condition_offset_index
uint16_t else_program_block_instruction_block_idx
uint16_t then_program_block_instruction_block_idx
finalizes the current block with a jump to the block, which does not create a loop in the graph (defi...
uint16_t target_block_idx
finalizes the current block with jump, creates a new block and sets it as the current block
uint16_t target_program_block_instruction_block_idx
switches to the non-terminated block with the chosen index
void mutate_uint16_t(uint16_t &value, std::mt19937_64 &rng, const Uint16MutationConfig &config)
Definition uint16_t.cpp:4
uint16_t generate_random_uint16(std::mt19937_64 &rng)
uint8_t generate_random_uint8(std::mt19937_64 &rng)
template void mutate_vec< CFGInstruction >(std::vector< CFGInstruction > &vec, std::mt19937_64 &rng, std::function< void(CFGInstruction &, std::mt19937_64 &)> mutate_element_function, std::function< CFGInstruction(std::mt19937_64 &)> generate_random_element_function, const VecMutationConfig &config)