Sarek_ppx_lib.Sarek_lowerval c_type_of_typ : Sarek_types.typ -> stringval record_constructor_strings :
string ->
(string * Sarek_types.typ * bool) list ->
string listval variant_constructor_strings :
string ->
(string * Sarek_types.typ option) list ->
string listval typ_of_core_type :
loc:Ppxlib.Location.t ->
Ppxlib.core_type ->
Sarek_types.typtype state = {mutable next_var_id : int;mutable declarations : Kirc_Ast.k_ext list;fun_map : (string, Sarek_typed_ast.tparam list * Sarek_typed_ast.texpr)
Stdlib.Hashtbl.t;lowering_stack : (string, unit) Stdlib.Hashtbl.t;lowered_funs : (string, Kirc_Ast.k_ext * string) Stdlib.Hashtbl.t;}Lowering state
val create_state :
(string, Sarek_typed_ast.tparam list * Sarek_typed_ast.texpr)
Stdlib.Hashtbl.t ->
stateval fresh_id : state -> intGenerate a fresh variable ID
val lower_memspace : Sarek_types.memspace -> Kirc_Ast.memspaceConvert memspace to Kirc_Ast memspace
val lower_prim_elttype : Sarek_types.prim_type -> Kirc_Ast.elttypeConvert prim_type to Kirc_Ast elttype
val lower_reg_elttype : Sarek_types.registered_type -> Kirc_Ast.elttypeConvert registered type to Kirc_Ast elttype
val elttype_of_typ : Sarek_types.typ -> Kirc_Ast.elttypeGet element type from a typ
val lower_expr : state -> Sarek_typed_ast.texpr -> Kirc_Ast.k_extLower a typed expression to Kirc_Ast
val lower_decl :
mutable_:bool ->
int ->
string ->
Sarek_types.typ ->
Kirc_Ast.k_extLower a declaration for a local/kernel variable.
val lower_ref : int -> string -> Sarek_types.typ -> Kirc_Ast.k_extLower a reference to a previously-declared variable.
val lower_binop :
state ->
Sarek_ast.binop ->
Sarek_typed_ast.texpr ->
Sarek_typed_ast.texpr ->
Sarek_types.typ ->
Kirc_Ast.k_extLower binary operation based on operand types
val lower_unop :
state ->
Sarek_ast.unop ->
Sarek_typed_ast.texpr ->
Sarek_types.typ ->
Kirc_Ast.k_extLower unary operation
val lower_seq : state -> Sarek_typed_ast.texpr list -> Kirc_Ast.k_extLower a sequence of expressions
val lower_match :
state ->
Sarek_typed_ast.texpr ->
(Sarek_typed_ast.tpattern * Sarek_typed_ast.texpr) list ->
Kirc_Ast.k_extLower a match expression
val lower_param : Sarek_typed_ast.tparam -> Kirc_Ast.k_extLower a kernel parameter to IR
val lower_params : Sarek_typed_ast.tparam list -> Kirc_Ast.k_extLower kernel parameters to IR params
val lower_kernel : Sarek_typed_ast.tkernel -> Kirc_Ast.k_ext * string listLower a complete kernel
val lower_return_value : Sarek_typed_ast.tkernel -> Kirc_Ast.k_extGet the return value IR from a kernel