Barretenberg
The ZK-SNARK library at the core of Aztec
Loading...
Searching...
No Matches
control_flow.hpp File Reference

Go to the source code of this file.

Classes

struct  ReturnOptions
 
struct  InsertSimpleInstructionBlock
 insert instruction block to the current block More...
 
struct  JumpToNewBlock
 finalizes the current block with jump, creates a new block and sets it as the current block More...
 
struct  JumpIfToNewBlock
 finalizes the current block with jump if, creates two new blocks, sets the first as the then block and the second as the else block, changes the current block to the then block More...
 
struct  JumpToBlock
 finalizes the current block with a jump to the block, which does not create a loop in the graph (defined by get_reachable_blocks) and switches the current block to the first block defined by get_non_terminated_blocks More...
 
struct  JumpIfToBlock
 finalizes the current block with a JumpI and Jump instructions to the block, which does not create a loop in the graph (defined by get_reachable_blocks) and switches the current block to the first block defined by get_non_terminated_blocks More...
 
struct  FinalizeWithReturn
 finalizes the current block with Return and switches to the first non-terminated block More...
 
struct  SwitchToNonTerminatedBlock
 switches to the non-terminated block with the chosen index More...
 
struct  InsertInternalCall
 inserts INTERNALCALL instruction to the current block creates a new block and sets it as the current block More...
 
struct  overloaded_cfg_instruction< Ts >
 
class  ControlFlow
 

Typedefs

using CFGInstruction = std::variant< InsertSimpleInstructionBlock, JumpToNewBlock, JumpIfToNewBlock, JumpToBlock, JumpIfToBlock, FinalizeWithReturn, SwitchToNonTerminatedBlock, InsertInternalCall >
 

Functions

template<class... Ts>
 overloaded_cfg_instruction (Ts...) -> overloaded_cfg_instruction< Ts... >
 
std::ostream & operator<< (std::ostream &os, const CFGInstruction &instruction)
 

Typedef Documentation

◆ CFGInstruction

Function Documentation

◆ operator<<()

std::ostream & operator<< ( std::ostream &  os,
const CFGInstruction instruction 
)
inline

◆ overloaded_cfg_instruction()

template<class... Ts>
overloaded_cfg_instruction ( Ts...  ) -> overloaded_cfg_instruction< Ts... >