output.l0
Module: backend.output
Source: compiler/stage2_l0/src/backend/output.l0 Language: Dea/L0
Imports / Includes
backend.loweringstd.stringdrivertypesastsignaturesstd.vectorbackend.lifetimec_emitter.namesc_emitter.declarationssem_contextbackend.statebackend.initializersscope_context
Symbols
- be_emit_let_declarations
- be_emit_function_declarations
- be_body_reassigns_param
- be_emit_function_definitions
- be_emit_main_wrapper_if_needed
Function be_emit_let_declarations
1
func be_emit_let_declarations(self: Backend*)
Emit all top-level let declarations.
Parameters:
self: Backend state to update.
Function be_emit_function_declarations
1
func be_emit_function_declarations(self: Backend*)
Emit all function declarations.
Parameters:
self: Backend state to update.
Function be_body_reassigns_param
1
func be_body_reassigns_param(self: Backend*, stmt_id: StmtId, param_name: string) -> bool
Check whether the statement sub-tree at stmt_id syntactically reassigns param_name via a bare VarRef target of an ST_ASSIGN .
Used by the function-prologue emitter to decide whether to defensively retain an ARC-typed parameter on entry.
Parameters:
self: Backend state.stmt_id: Root statement id, or negative when absent.param_name: Source-level parameter name to match against assignment targets.
Returns: true when any reachable ST_ASSIGN targets a bare VarRef with that name.
Function be_emit_function_definitions
1
func be_emit_function_definitions(self: Backend*)
Emit all non-extern function definitions.
Parameters:
self: Backend state to update.
Function be_emit_main_wrapper_if_needed
1
func be_emit_main_wrapper_if_needed(self: Backend*)
Emit the C main() wrapper when the entry module defines main .
Parameters:
self: Backend state to update.