package rune

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module Internal.Lowerer

type kernel_spec
val const_to_string : 'a. 'a Ir.Dtype.t -> 'a -> string
type lowering_ctx = {
  1. meta : (Ir.Var.t, Ir.var_metadata) Hashtbl.t;
  2. scalar_map : (Ir.Var.t, Ir.Var.t) Hashtbl.t;
  3. buffer_map : (Ir.Var.t, Ir.Var.t) Hashtbl.t;
  4. instrs : Ir.Lowered.instruction list ref;
}
val add_instr : lowering_ctx -> Ir.Lowered.instruction -> unit
val ensure_meta : lowering_ctx -> Ir.Var.t -> Ir.var_metadata -> unit
val meta_of : lowering_ctx -> Ir.Var.t -> Ir.var_metadata option
val ll_of_hl : lowering_ctx -> Ir.Var.t -> buffer:bool -> Ir.Var.t
val gtid : lowering_ctx -> int
val load_scalar : lowering_ctx -> hl_buffer:Ir.Var.t -> idx:int -> dtype:'a Ir.Dtype.t -> Ir.Var.t
val lower_node : lowering_ctx -> Ir.any_node -> Ir.Var.t list -> unit
val lower_kernel : kernel_spec:kernel_spec -> original_graph_vars_metadata:(Ir.Var.t, Ir.var_metadata) Hashtbl.t -> Ir.Lowered.graph_t
val lower_from_scheduled : item:Ir.Scheduled.schedule_item -> vars_metadata:(Ir.Var.t, Ir.var_metadata) Hashtbl.t -> (Ir.Lowered.graph_t, string) result