convert.l0

convert.l0

Module: backend.convert

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

Imports / Includes

  • backend.state
  • types
  • c_emitter.values
  • c_emitter.types

Symbols

Function be_sizeof_expr_for_type

1
func be_sizeof_expr_for_type(ty: Type*) -> string

Return a C sizeof expression for the runtime access extent.

Parameters:

  • ty: Type whose value extent is required.

Returns: C expression string.

Function be_alignof_expr_for_type

1
func be_alignof_expr_for_type(ty: Type*) -> string

Return a C alignment expression for the runtime access target.

Parameters:

  • ty: Type whose alignment is required.

Returns: C expression string.

Function be_emit_checked_pointer_expr

1
func be_emit_checked_pointer_expr(self: Backend*, c_ptr_expr: string, ptr_ty: Type*, access_mode: string) -> string

Emit a pointer expression checked for one pointee-sized access.

Parameters:

  • self: Backend state to inspect.
  • c_ptr_expr: Pointer expression.
  • ptr_ty: L0 pointer-shaped type.
  • access_mode: Runtime access mode expression.

Returns: Checked pointer expression.

Function be_emit_pointer_index_lvalue

1
func be_emit_pointer_index_lvalue(self: Backend*, c_base: string, c_index: string, base_ty: Type*, access_mode: string) -> string

Emit a checked pointer-index lvalue expression.

Parameters:

  • self: Backend state to inspect.
  • c_base: Base pointer expression.
  • c_index: Index expression.
  • base_ty: L0 pointer-shaped base type.
  • access_mode: Runtime access mode expression.

Returns: Checked lvalue expression.

Function be_convert_expr_with_expected_type

1
func be_convert_expr_with_expected_type(c_expr: string, natural_ty: Type*?, expected: Type*) -> string

Convert a lowered expression to an expected type when required.

Parameters:

  • c_expr: Lowered source expression.
  • natural_ty: Natural source type.
  • expected: Expected destination type.

Returns: Lowered expression converted as needed.