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

SSA form for one function or top-level body lowered from IR. More...

#include <SSA.H>

Collaboration diagram for Aleph::Compiler_SSA_Function:
[legend]

Public Member Functions

bool is_top_level () const noexcept
 Returns whether this SSA function represents the top-level body.
 

Public Attributes

Compiler_IR_Function_Id id = compiler_ir_invalid_id()
 Stable function id within the source module.
 
bool top_level = false
 Whether this function represents the lowered top-level body.
 
std::string name
 Debug/source name.
 
Source_Span span
 Source span of the function/body.
 
Compiler_Type_Id type_id = 0
 Full function type, when known.
 
const Compiler_IR_Function * source_function = nullptr
 Original non-SSA IR function.
 
DynArray< Compiler_IR_Slot > local_slots
 Original local/parameter slots for debug and phi ownership.
 
DynArray< Compiler_SSA_Parameter > parameters
 Entry parameter SSA definitions.
 
DynArray< Compiler_SSA_Block > blocks
 Reachable SSA blocks in deterministic order.
 
Compiler_SSA_Dominance_Info dominance
 Dominance metadata over blocks.
 
Compiler_SSA_Block_Id entry_block = compiler_ssa_invalid_id()
 Canonical entry block.
 
Compiler_SSA_Block_Id exit_block = compiler_ssa_invalid_id()
 Canonical exit block.
 
Compiler_SSA_Value_Id next_value_id = 0
 Next SSA value id to allocate.
 

Detailed Description

SSA form for one function or top-level body lowered from IR.

Definition at line 190 of file SSA.H.

Member Function Documentation

◆ is_top_level()

bool Aleph::Compiler_SSA_Function::is_top_level ( ) const
inlinenoexcept

Returns whether this SSA function represents the top-level body.

Definition at line 207 of file SSA.H.

References top_level.

Member Data Documentation

◆ blocks

DynArray<Compiler_SSA_Block> Aleph::Compiler_SSA_Function::blocks

Reachable SSA blocks in deterministic order.

Definition at line 200 of file SSA.H.

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

◆ dominance

Compiler_SSA_Dominance_Info Aleph::Compiler_SSA_Function::dominance

Dominance metadata over blocks.

Definition at line 201 of file SSA.H.

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

◆ entry_block

Compiler_SSA_Block_Id Aleph::Compiler_SSA_Function::entry_block = compiler_ssa_invalid_id()

Canonical entry block.

Definition at line 202 of file SSA.H.

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

◆ exit_block

Compiler_SSA_Block_Id Aleph::Compiler_SSA_Function::exit_block = compiler_ssa_invalid_id()

Canonical exit block.

Definition at line 203 of file SSA.H.

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

◆ id

Compiler_IR_Function_Id Aleph::Compiler_SSA_Function::id = compiler_ir_invalid_id()

Stable function id within the source module.

Definition at line 192 of file SSA.H.

Referenced by Aleph::Compiler_SSA_Lowering::lower_function_internal().

◆ local_slots

DynArray<Compiler_IR_Slot> Aleph::Compiler_SSA_Function::local_slots

Original local/parameter slots for debug and phi ownership.

Definition at line 198 of file SSA.H.

Referenced by Aleph::validate_ssa_function().

◆ name

std::string Aleph::Compiler_SSA_Function::name

Debug/source name.

Definition at line 194 of file SSA.H.

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

◆ next_value_id

Compiler_SSA_Value_Id Aleph::Compiler_SSA_Function::next_value_id = 0

Next SSA value id to allocate.

Definition at line 204 of file SSA.H.

Referenced by Aleph::validate_ssa_function().

◆ parameters

DynArray<Compiler_SSA_Parameter> Aleph::Compiler_SSA_Function::parameters

Entry parameter SSA definitions.

Definition at line 199 of file SSA.H.

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

◆ source_function

const Compiler_IR_Function* Aleph::Compiler_SSA_Function::source_function = nullptr

Original non-SSA IR function.

Definition at line 197 of file SSA.H.

◆ span

Source_Span Aleph::Compiler_SSA_Function::span

Source span of the function/body.

Definition at line 195 of file SSA.H.

◆ top_level

bool Aleph::Compiler_SSA_Function::top_level = false

Whether this function represents the lowered top-level body.

Definition at line 193 of file SSA.H.

Referenced by is_top_level().

◆ type_id

Compiler_Type_Id Aleph::Compiler_SSA_Function::type_id = 0

Full function type, when known.

Definition at line 196 of file SSA.H.

Referenced by Aleph::compiler_dump_ssa_function().


The documentation for this struct was generated from the following file: