|
Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
|
Public Attributes | |
| const Compiler_HIR_Module * | hir = nullptr |
| Compiler_IR_Context * | ctx = nullptr |
| const Compiler_Type_Context * | types = nullptr |
| size_t | if_counter = 0 |
| size_t | while_counter = 0 |
| size_t | dead_counter = 0 |
| DynArray< std::pair< std::string, Compiler_IR_Function_Id > > | function_ids |
Definition at line 74 of file Compiler_IR_Lowering_MVP.H.
|
inlinestatic |
Definition at line 163 of file Compiler_IR_Lowering_MVP.H.
References block(), Aleph::blossom_maximum_cardinality_matching(), Aleph::Compiler_IR_Detail::contains_block_id(), and function().
Referenced by set_branch().
|
inline |
Definition at line 106 of file Compiler_IR_Lowering_MVP.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::Global, and Aleph::Compiler_IR_Slot::id.
|
inlinestatic |
Definition at line 181 of file Compiler_IR_Lowering_MVP.H.
References Aleph::blossom_maximum_cardinality_matching(), function(), Aleph::Compiler_IR_Slot::id, and Aleph::Compiler_IR_Function::local_slots.
Referenced by lower_function_body(), and lower_stmt().
|
inlinestatic |
Definition at line 290 of file Compiler_IR_Lowering_MVP.H.
References Aleph::DynArray< T >::access(), ah_runtime_error_unless, Aleph::blossom_maximum_cardinality_matching(), Aleph::DynArray< T >::is_empty(), and Aleph::DynArray< T >::size().
Referenced by lower_function_body(), lower_stmt(), and preload_global_bindings().
|
inlinestatic |
Definition at line 136 of file Compiler_IR_Lowering_MVP.H.
References Aleph::Compiler_IR_Function::blocks, and function().
Referenced by add_edge(), create_block(), emit_instruction(), lower_function_body(), set_branch(), and set_exit().
|
inlinestatic |
Definition at line 154 of file Compiler_IR_Lowering_MVP.H.
References block(), Aleph::Compiler_IR_Function::blocks, function(), Aleph::Compiler_IR_Block::id, and Aleph::Compiler_IR_Block::label.
Referenced by ensure_block(), lower_function_body(), and lower_stmt().
|
inlinestatic |
Definition at line 197 of file Compiler_IR_Lowering_MVP.H.
References block(), Aleph::blossom_maximum_cardinality_matching(), function(), and merge_span().
Referenced by emit_unit_constant(), lower_expr(), and lower_stmt().
|
inline |
Definition at line 313 of file Compiler_IR_Lowering_MVP.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::Constant, emit_instruction(), function(), Aleph::Compiler_IR_Instruction::kind, next_value(), Aleph::Compiler_IR_Function::next_value_id, types, and Aleph::Compiler_Type_Context::unit_type().
Referenced by lower_expr(), and lower_stmt().
|
inline |
Definition at line 271 of file Compiler_IR_Lowering_MVP.H.
References Aleph::compiler_ir_invalid_id(), create_block(), dead_counter, and function().
Referenced by lower_stmt().
|
inlinestatic |
Definition at line 278 of file Compiler_IR_Lowering_MVP.H.
References Aleph::DynArray< T >::append().
Referenced by lower_function_body(), lower_stmt(), and preload_global_bindings().
|
inlinenoexcept |
Definition at line 90 of file Compiler_IR_Lowering_MVP.H.
References Aleph::DynArray< T >::access(), Aleph::compiler_ir_invalid_id(), function_ids, and Aleph::DynArray< T >::size().
|
inlinenoexcept |
Definition at line 98 of file Compiler_IR_Lowering_MVP.H.
References Aleph::compiler_ir_invalid_id().
Referenced by lower_stmt().
|
inline |
Definition at line 85 of file Compiler_IR_Lowering_MVP.H.
Referenced by add_edge(), add_local_slot(), block(), create_block(), emit_instruction(), emit_unit_constant(), ensure_block(), lower_expr(), lower_function_body(), lower_stmt(), next_value(), set_branch(), and set_exit().
|
inlinestatic |
Definition at line 283 of file Compiler_IR_Lowering_MVP.H.
References ah_runtime_error_unless, Aleph::blossom_maximum_cardinality_matching(), Aleph::DynArray< T >::is_empty(), and Aleph::DynArray< T >::pop().
Referenced by lower_function_body(), and lower_stmt().
|
inlinestatic |
Definition at line 299 of file Compiler_IR_Lowering_MVP.H.
References Aleph::DynArray< T >::access(), and Aleph::DynArray< T >::size().
Referenced by lower_expr().
|
inline |
Definition at line 327 of file Compiler_IR_Lowering_MVP.H.
References Aleph::DynArray< T >::access(), ah_runtime_error_unless, Aleph::and, Aleph::DynArray< T >::append(), Aleph::Assign, Aleph::Binary, Aleph::blossom_maximum_cardinality_matching(), Aleph::Call, Aleph::compiler_ir_invalid_id(), Aleph::compiler_operator_compound_base(), Aleph::compiler_operator_is_compound_assignment(), Aleph::Constant, emit_instruction(), emit_unit_constant(), Aleph::Compiler_IR_Detail::Binding::Function, function(), Aleph::Function_Ref, Aleph::Compiler_IR_Detail::Binding::Global_Slot, Aleph::Compiler_IR_Instruction::global_slot_id, Aleph::Invalid, Aleph::Compiler_HIR_Expr::kind, Aleph::Compiler_IR_Instruction::kind, Aleph::Load, Aleph::Compiler_IR_Detail::Binding::Local_Slot, Aleph::Compiler_IR_Instruction::local_slot_id, lookup(), lower_expr(), next_value(), Aleph::Compiler_IR_Function::next_value_id, Aleph::Compiler_IR_Instruction::operands, Aleph::Compiler_IR_Instruction::result_id, Aleph::DynArray< T >::size(), Aleph::Compiler_HIR_Node::span, Aleph::Compiler_IR_Instruction::span, Aleph::Compiler_IR_Function::span, Aleph::Store, Aleph::Compiler_IR_Instruction::type_id, Aleph::Unary, and Aleph::Variable.
Referenced by lower_expr(), and lower_stmt().
|
inline |
Definition at line 699 of file Compiler_IR_Lowering_MVP.H.
References Aleph::DynArray< T >::access(), add_local_slot(), Aleph::and, bind(), block(), Aleph::blossom_maximum_cardinality_matching(), Aleph::compiler_ir_invalid_id(), create_block(), enter_scope(), Aleph::Compiler_IR_Function::entry_block, Aleph::Compiler_IR_Function::exit_block, function(), leave_scope(), lower_stmt(), Aleph::Compiler_IR_Function::name, Aleph::Parameter, Aleph::Compiler_HIR_Function::parameters, preload_global_bindings(), set_exit(), set_jump(), Aleph::DynArray< T >::size(), and Aleph::Compiler_IR_Function::source_function.
|
inline |
Definition at line 505 of file Compiler_IR_Lowering_MVP.H.
References add_local_slot(), Aleph::and, Aleph::DynArray< T >::append(), bind(), Aleph::Block, Aleph::blossom_maximum_cardinality_matching(), Aleph::Break, Aleph::compiler_ir_invalid_id(), Aleph::Continue, create_block(), emit_instruction(), emit_unit_constant(), ensure_block(), enter_scope(), Aleph::Eval, find_global_slot_id(), function(), Aleph::Compiler_IR_Detail::Binding::Global_Slot, Aleph::Compiler_IR_Instruction::global_slot_id, Aleph::Compiler_IR_Detail::Binding::id, Aleph::If, if_counter, Aleph::Invalid, Aleph::Compiler_IR_Function::is_top_level(), Aleph::Compiler_HIR_Stmt::kind, Aleph::Compiler_IR_Detail::Binding::kind, Aleph::Compiler_IR_Instruction::kind, leave_scope(), Aleph::Let, Aleph::Local, Aleph::Compiler_IR_Detail::Binding::Local_Slot, Aleph::Compiler_IR_Instruction::local_slot_id, lower_expr(), lower_stmt(), Aleph::Compiler_IR_Function::name, Aleph::Compiler_IR_Instruction::operands, Aleph::Return, set_branch(), set_jump(), set_return(), set_unreachable(), Aleph::DynArray< T >::size(), Aleph::Compiler_HIR_Node::span, Aleph::Compiler_IR_Instruction::span, Aleph::Compiler_IR_Function::span, Aleph::Store, Aleph::Compiler_IR_Detail::Binding::type_id, Aleph::Compiler_IR_Instruction::type_id, value, Aleph::Compiler_HIR_Return_Stmt::value, Aleph::While, and while_counter.
Referenced by lower_function_body(), and lower_stmt().
|
inlinestatic |
Definition at line 142 of file Compiler_IR_Lowering_MVP.H.
References Aleph::blossom_maximum_cardinality_matching(), Aleph::compiler_hir_merge_spans(), and Aleph::Source_Span::is_valid().
Referenced by emit_instruction(), and set_branch().
|
inlinestaticnoexcept |
Definition at line 175 of file Compiler_IR_Lowering_MVP.H.
References function(), and Aleph::Compiler_IR_Function::next_value_id.
Referenced by emit_unit_constant(), and lower_expr().
|
inline |
Definition at line 120 of file Compiler_IR_Lowering_MVP.H.
References Aleph::DynArray< T >::append(), Aleph::blossom_maximum_cardinality_matching(), Aleph::compiler_ir_invalid_id(), ctx, function_ids, Aleph::Compiler_IR_Function::id, and Aleph::Compiler_IR_Context::make().
|
inline |
Definition at line 681 of file Compiler_IR_Lowering_MVP.H.
References Aleph::DynArray< T >::access(), bind(), enter_scope(), function_ids, and Aleph::DynArray< T >::size().
Referenced by lower_function_body().
|
inlinestatic |
Definition at line 220 of file Compiler_IR_Lowering_MVP.H.
References add_edge(), ah_runtime_error_unless, block(), Aleph::blossom_maximum_cardinality_matching(), Aleph::Branch, function(), and merge_span().
Referenced by lower_stmt().
|
inlinestatic |
Definition at line 253 of file Compiler_IR_Lowering_MVP.H.
References block(), Aleph::blossom_maximum_cardinality_matching(), Aleph::Exit, and function().
Referenced by lower_function_body().
|
inlinestatic |
Definition at line 206 of file Compiler_IR_Lowering_MVP.H.
Referenced by lower_function_body(), and lower_stmt().
|
inlinestatic |
Definition at line 238 of file Compiler_IR_Lowering_MVP.H.
Referenced by lower_stmt().
|
inlinestatic |
Definition at line 259 of file Compiler_IR_Lowering_MVP.H.
Referenced by lower_stmt().
| Compiler_IR_Context* Aleph::Compiler_IR_Lowering::Module_Builder::ctx = nullptr |
Definition at line 78 of file Compiler_IR_Lowering_MVP.H.
Referenced by predeclare_function().
| size_t Aleph::Compiler_IR_Lowering::Module_Builder::dead_counter = 0 |
Definition at line 82 of file Compiler_IR_Lowering_MVP.H.
Referenced by ensure_block().
| DynArray<std::pair<std::string, Compiler_IR_Function_Id> > Aleph::Compiler_IR_Lowering::Module_Builder::function_ids |
Definition at line 83 of file Compiler_IR_Lowering_MVP.H.
Referenced by find_function_id(), predeclare_function(), and preload_global_bindings().
| const Compiler_HIR_Module* Aleph::Compiler_IR_Lowering::Module_Builder::hir = nullptr |
Definition at line 77 of file Compiler_IR_Lowering_MVP.H.
| size_t Aleph::Compiler_IR_Lowering::Module_Builder::if_counter = 0 |
Definition at line 80 of file Compiler_IR_Lowering_MVP.H.
Referenced by lower_stmt().
| const Compiler_Type_Context* Aleph::Compiler_IR_Lowering::Module_Builder::types = nullptr |
Definition at line 79 of file Compiler_IR_Lowering_MVP.H.
Referenced by emit_unit_constant().
| size_t Aleph::Compiler_IR_Lowering::Module_Builder::while_counter = 0 |
Definition at line 81 of file Compiler_IR_Lowering_MVP.H.
Referenced by lower_stmt().