convert.l0
Module: backend.convert
Source: compiler/stage2_l0/src/backend/convert.l0 Language: Dea/L0
Imports / Includes
backend.statetypesc_emitter.valuesc_emitter.types
Symbols
- be_sizeof_expr_for_type
- be_alignof_expr_for_type
- be_emit_checked_pointer_expr
- be_emit_pointer_index_lvalue
- be_convert_expr_with_expected_type
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.