Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
Aleph::Compiler_SSA_Detail Namespace Reference

Classes

struct  Definition_Location
 
struct  Normalized_IR_Function
 
struct  Phi_Spec
 

Functions

std::string block_name (const Compiler_SSA_Block_Id id)
 
std::string value_name (const Compiler_SSA_Value_Id id)
 
std::string local_slot_name (const Compiler_IR_Local_Slot_Id id)
 
std::string global_slot_name (const Compiler_IR_Global_Slot_Id id)
 
std::string function_name (const Compiler_IR_Function_Id id)
 
const char * token_name (const Compiler_Operator_Kind kind) noexcept
 
void append_indented_text (std::ostream &out, const std::string &text, const size_t indent)
 
bool contains_block_id (const DynArray< Compiler_SSA_Block_Id > &ids, const Compiler_SSA_Block_Id id) noexcept
 
DynArray< bool > compute_reachable_blocks (const Compiler_IR_Function &function)
 
Normalized_IR_Function normalize_ir_function (const Compiler_IR_Function &source)
 
Compiler_SSA_Dominance_Info compute_dominance_info (const Compiler_IR_Function &function)
 
size_t next_value (Compiler_SSA_Function &function) noexcept
 
Compiler_SSA_Block & block (Compiler_SSA_Function &function, const Compiler_SSA_Block_Id id)
 
const Compiler_SSA_Block & block (const Compiler_SSA_Function &function, const Compiler_SSA_Block_Id id)
 
Compiler_SSA_Value_Id current_slot_value (const DynArray< DynArray< Compiler_SSA_Value_Id > > &stacks, const Compiler_IR_Local_Slot_Id slot_id) noexcept
 
size_t predecessor_index (const Compiler_SSA_Block &block, const Compiler_SSA_Block_Id predecessor)
 
void rename_recursive (Compiler_SSA_Function &output, const Compiler_IR_Function &normalized, const Compiler_SSA_Dominance_Info &dominance, const DynArray< DynArray< Phi_Spec > > &phi_specs, Compiler_SSA_Block_Id block_id, DynArray< DynArray< Compiler_SSA_Value_Id > > &slot_stacks, DynArray< Compiler_SSA_Value_Id > &renamed_values)
 

Function Documentation

◆ append_indented_text()

void Aleph::Compiler_SSA_Detail::append_indented_text ( std::ostream &  out,
const std::string &  text,
const size_t  indent 
)
inline

Definition at line 355 of file SSA.H.

References Aleph::blossom_maximum_cardinality_matching(), and out.

Referenced by Aleph::compiler_dump_ssa_module().

◆ block() [1/2]

Compiler_SSA_Block & Aleph::Compiler_SSA_Detail::block ( Compiler_SSA_Function &  function,
const Compiler_SSA_Block_Id  id 
)
inline

◆ block() [2/2]

const Compiler_SSA_Block & Aleph::Compiler_SSA_Detail::block ( const Compiler_SSA_Function &  function,
const Compiler_SSA_Block_Id  id 
)
inline

Definition at line 643 of file SSA.H.

References Aleph::Compiler_SSA_Function::blocks.

◆ block_name()

std::string Aleph::Compiler_SSA_Detail::block_name ( const Compiler_SSA_Block_Id  id)
inline

Definition at line 319 of file SSA.H.

Referenced by Aleph::compiler_dump_ssa_function(), and Aleph::validate_ssa_function().

◆ compute_dominance_info()

◆ compute_reachable_blocks()

◆ contains_block_id()

bool Aleph::Compiler_SSA_Detail::contains_block_id ( const DynArray< Compiler_SSA_Block_Id > &  ids,
const Compiler_SSA_Block_Id  id 
)
inlinenoexcept

◆ current_slot_value()

Compiler_SSA_Value_Id Aleph::Compiler_SSA_Detail::current_slot_value ( const DynArray< DynArray< Compiler_SSA_Value_Id > > &  stacks,
const Compiler_IR_Local_Slot_Id  slot_id 
)
inlinenoexcept

Definition at line 650 of file SSA.H.

References Aleph::blossom_maximum_cardinality_matching().

Referenced by rename_recursive().

◆ function_name()

std::string Aleph::Compiler_SSA_Detail::function_name ( const Compiler_IR_Function_Id  id)
inline

Definition at line 343 of file SSA.H.

Referenced by Aleph::compiler_dump_ssa_function().

◆ global_slot_name()

std::string Aleph::Compiler_SSA_Detail::global_slot_name ( const Compiler_IR_Global_Slot_Id  id)
inline

Definition at line 337 of file SSA.H.

Referenced by Aleph::compiler_dump_ssa_function(), and Aleph::compiler_dump_ssa_module().

◆ local_slot_name()

std::string Aleph::Compiler_SSA_Detail::local_slot_name ( const Compiler_IR_Local_Slot_Id  id)
inline

Definition at line 331 of file SSA.H.

Referenced by Aleph::compiler_dump_ssa_function().

◆ next_value()

size_t Aleph::Compiler_SSA_Detail::next_value ( Compiler_SSA_Function &  function)
inlinenoexcept

Definition at line 629 of file SSA.H.

Referenced by rename_recursive().

◆ normalize_ir_function()

◆ predecessor_index()

size_t Aleph::Compiler_SSA_Detail::predecessor_index ( const Compiler_SSA_Block &  block,
const Compiler_SSA_Block_Id  predecessor 
)
inline

◆ rename_recursive()

◆ token_name()

const char * Aleph::Compiler_SSA_Detail::token_name ( const Compiler_Operator_Kind  kind)
inlinenoexcept

Definition at line 349 of file SSA.H.

References Aleph::compiler_operator_name().

Referenced by Aleph::compiler_dump_ssa_function().

◆ value_name()

std::string Aleph::Compiler_SSA_Detail::value_name ( const Compiler_SSA_Value_Id  id)
inline

Definition at line 325 of file SSA.H.

Referenced by Aleph::compiler_dump_ssa_function(), and Aleph::validate_ssa_function().