Module Intrinsic_registry.Global

Global registry that combines all backend registries. Used for intrinsic lookup when the backend is not yet known.

type entry = {
  1. backend : string;
    (*

    Backend name: "CUDA", "OpenCL", "Native"

    *)
  2. impl : intrinsic_impl;
}

Registry entry with backend association

val table : (string, entry list) Stdlib.Hashtbl.t
val register : backend:string -> string -> intrinsic_impl -> unit

Register an intrinsic for a specific backend

val find_all : string -> entry list

Find all implementations of an intrinsic across backends

val find : backend:string -> string -> intrinsic_impl option

Find implementation for a specific backend

val list_all : unit -> string list

List all registered intrinsic names

val backends_for : string -> string list

List all backends that implement a given intrinsic