output.l0

output.l0

Module: backend.output

Source: compiler/stage2_l0/src/backend/output.l0 Language: Dea/L0

Imports / Includes

  • backend.lowering
  • std.string
  • driver
  • types
  • ast
  • signatures
  • std.vector
  • backend.lifetime
  • c_emitter.names
  • c_emitter.declarations
  • sem_context
  • backend.state
  • backend.initializers
  • scope_context

Symbols

Function be_emit_let_declarations

1
func be_emit_let_declarations(self: Backend*)

Emit all top-level let declarations.

Parameters:

Function be_emit_function_declarations

1
func be_emit_function_declarations(self: Backend*)

Emit all function declarations.

Parameters:

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:

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: