|
Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
|
One SSA basic block containing phis, instructions, and a terminator. More...
#include <SSA.H>
Public Member Functions | |
| bool | is_terminated () const noexcept |
| Returns whether the block already has a terminator. | |
Public Attributes | |
| Compiler_SSA_Block_Id | id = compiler_ssa_invalid_id() |
| Dense SSA block id. | |
| Compiler_IR_Block_Id | source_block_id = compiler_ir_invalid_id() |
| Original IR block id before SSA normalization. | |
| std::string | label |
| Deterministic debug label. | |
| Source_Span | span |
| Aggregate source span. | |
| DynArray< Compiler_SSA_Phi > | phis |
| Phi nodes evaluated before instructions. | |
| DynArray< Compiler_SSA_Instruction > | instructions |
| Linear SSA instruction list. | |
| Compiler_SSA_Terminator | terminator |
| Explicit block terminator. | |
| DynArray< Compiler_SSA_Block_Id > | predecessors |
| Predecessor ids in deterministic order. | |
One SSA basic block containing phis, instructions, and a terminator.
|
inlinenoexcept |
Returns whether the block already has a terminator.
Definition at line 173 of file SSA.H.
References Aleph::Compiler_SSA_Terminator::kind, Aleph::None, and terminator.
| Compiler_SSA_Block_Id Aleph::Compiler_SSA_Block::id = compiler_ssa_invalid_id() |
Dense SSA block id.
Definition at line 163 of file SSA.H.
Referenced by Aleph::compiler_dump_bytecode_function(), Aleph::compiler_dump_cfg_function(), Aleph::compiler_dump_ir_function(), Aleph::Compiler_C_Backend::Emitter::emit_function_body(), Aleph::Compiler_C_Backend::Emitter::emit_terminator(), Aleph::Compiler_Bytecode_Lowering::lower_function(), Aleph::Compiler_SSA_Lowering::lower_function_internal(), Aleph::Compiler_SSA_Detail::normalize_ir_function(), Aleph::Compiler_Dataflow_Detail::simulate_block(), Aleph::validate_bytecode_function(), Aleph::validate_cfg_function(), Aleph::validate_ir_function(), and Aleph::validate_ssa_function().
| DynArray<Compiler_SSA_Instruction> Aleph::Compiler_SSA_Block::instructions |
Linear SSA instruction list.
Definition at line 168 of file SSA.H.
Referenced by Aleph::compiler_dump_ir_function(), Aleph::compiler_dump_ssa_function(), Aleph::Compiler_Dataflow_Detail::compute_block_use_def(), Aleph::eliminate_dead_code(), Aleph::Compiler_C_Backend::Emitter::emit_function_body(), Aleph::Compiler_Bytecode_Lowering::lower_function(), Aleph::Compiler_SSA_Lowering::lower_function_internal(), Aleph::Compiler_Dataflow_Detail::simulate_block(), Aleph::validate_dead_code_elimination(), Aleph::validate_ir_function(), and Aleph::validate_ssa_function().
| std::string Aleph::Compiler_SSA_Block::label |
Deterministic debug label.
Definition at line 165 of file SSA.H.
Referenced by Aleph::compiler_dump_bytecode_function(), Aleph::compiler_dump_cfg_function(), Aleph::compiler_dump_dataflow_analysis(), Aleph::compiler_dump_ir_function(), Aleph::compiler_dump_ssa_function(), Aleph::Compiler_C_Backend::Emitter::emit_function_body(), Aleph::Compiler_Bytecode_Lowering::lower_function(), Aleph::Compiler_SSA_Lowering::lower_function_internal(), and main().
| DynArray<Compiler_SSA_Phi> Aleph::Compiler_SSA_Block::phis |
Phi nodes evaluated before instructions.
Definition at line 167 of file SSA.H.
Referenced by Aleph::compiler_dump_ssa_function(), and Aleph::validate_ssa_function().
| DynArray<Compiler_SSA_Block_Id> Aleph::Compiler_SSA_Block::predecessors |
Predecessor ids in deterministic order.
Definition at line 170 of file SSA.H.
Referenced by Aleph::compiler_dump_cfg_function(), Aleph::compiler_dump_ssa_function(), Aleph::Compiler_SSA_Detail::compute_dominance_info(), Aleph::Compiler_SSA_Lowering::lower_function_internal(), Aleph::Compiler_SSA_Detail::normalize_ir_function(), Aleph::Compiler_SSA_Detail::predecessor_index(), Aleph::validate_cfg_function(), and Aleph::validate_ssa_function().
| Compiler_IR_Block_Id Aleph::Compiler_SSA_Block::source_block_id = compiler_ir_invalid_id() |
Original IR block id before SSA normalization.
Definition at line 164 of file SSA.H.
Referenced by Aleph::compiler_dump_bytecode_function(), Aleph::compiler_dump_ssa_function(), and Aleph::Compiler_SSA_Lowering::lower_function_internal().
| Source_Span Aleph::Compiler_SSA_Block::span |
Aggregate source span.
Definition at line 166 of file SSA.H.
Referenced by Aleph::Compiler_HIR_Builder::append_statement(), Aleph::Compiler_SSA_Lowering::lower_function_internal(), Aleph::Compiler_HIR_Lowering::lower_stmt(), and Aleph::Compiler_Parser::parse_block_statement().
| Compiler_SSA_Terminator Aleph::Compiler_SSA_Block::terminator |
Explicit block terminator.
Definition at line 169 of file SSA.H.
Referenced by Aleph::analyze_dataflow_function(), Aleph::compiler_dump_cfg_function(), Aleph::compiler_dump_ir_function(), Aleph::compiler_dump_ssa_function(), Aleph::Compiler_Dataflow_Detail::compute_reachability(), Aleph::Compiler_SSA_Detail::compute_reachable_blocks(), Aleph::eliminate_dead_code(), Aleph::Compiler_C_Backend::Emitter::emit_terminator(), is_terminated(), Aleph::Compiler_Bytecode_Lowering::lower_function(), main(), Aleph::Compiler_SSA_Detail::normalize_ir_function(), Aleph::Compiler_Dataflow_Detail::simulate_block(), Aleph::validate_cfg_function(), Aleph::validate_dead_code_elimination(), Aleph::validate_ir_function(), and Aleph::validate_ssa_function().