Module Sarek_ppx_lib.Sarek_quote_ir

module Ir = Sarek_ir_ppx
val quote_int : loc:Ppxlib__.Location.t -> int -> Ppxlib__.Import.expression

Quote helpers

val quote_int32 : loc:Ppxlib.location -> int32 -> Ppxlib_ast.Ast.expression
val quote_int64 : loc:Ppxlib.location -> int64 -> Ppxlib_ast.Ast.expression
val quote_float : loc:Ppxlib__.Location.t -> float -> Ppxlib__.Import.expression
val quote_string : loc:Ppxlib__.Location.t -> string -> Ppxlib__.Import.expression
val quote_bool : loc:Ppxlib.location -> bool -> Ppxlib_ast.Ast.expression
val quote_list : loc:Ppxlib.location -> (loc:Ppxlib.location -> 'a -> Ppxlib_ast.Ast.expression) -> 'a list -> Ppxlib_ast.Ast.expression
val quote_option : loc:Ppxlib.location -> (loc:Ppxlib.location -> 'a -> Ppxlib_ast.Ast.expression) -> 'a option -> Ppxlib_ast.Ast.expression
val quote_memspace : loc:Ppxlib.location -> Ir.memspace -> Ppxlib.expression

Quote memspace

val quote_elttype : loc:Ppxlib.location -> Ir.elttype -> Ppxlib_ast.Ast.expression

Quote elttype

val quote_var : loc:Ppxlib.location -> Ir.var -> Ppxlib.expression

Quote var

val quote_const : loc:Ppxlib.location -> Ir.const -> Ppxlib.expression

Quote const

val quote_binop : loc:Ppxlib.location -> Ir.binop -> Ppxlib.expression

Quote binop

val quote_unop : loc:Ppxlib.location -> Ir.unop -> Ppxlib.expression

Quote unop

val quote_for_dir : loc:Ppxlib.location -> Ir.for_dir -> Ppxlib.expression

Quote for_dir

val quote_pattern : loc:Ppxlib.location -> Ir.pattern -> Ppxlib.expression

Quote pattern - must come before quote_expr since EMatch uses it

val quote_expr : loc:Ppxlib.location -> Ir.expr -> Ppxlib_ast.Ast.expression

Quote expr

val quote_lvalue : loc:Ppxlib.location -> Ir.lvalue -> Ppxlib.expression

Quote lvalue

val quote_stmt : loc:Ppxlib.location -> Ir.stmt -> Ppxlib_ast.Ast.expression

Quote stmt

val quote_array_info : loc:Ppxlib.location -> Ir.array_info -> Ppxlib.expression

Quote array_info

val quote_decl : loc:Ppxlib.location -> Ir.decl -> Ppxlib.expression

Quote decl

val quote_type_def : loc:Ppxlib.location -> (string * (string * Ir.elttype) list) -> Ppxlib.expression

Quote a type definition (name, field list)

val quote_variant_def : loc:Ppxlib.location -> (string * (string * Ir.elttype list) list) -> Ppxlib.expression

Quote a variant definition (name, constructors with payload types)

val quote_helper_func : loc:Ppxlib.location -> Ir.helper_func -> Ppxlib.expression

Quote helper_func

val quote_kernel : loc:Ppxlib.location -> ?native_fn_expr:Ppxlib.expression -> Ir.kernel -> Ppxlib.expression

Quote kernel.

  • parameter native_fn_expr

    Optional expression that generates the native function (adapted from cpu_kern). If provided, it should have type: parallel:bool -> block:int*int*int -> grid:int*int*int -> Kernel_arg.t array -> unit