Module Llair.Inst

type t = inst
include Ppx_compare_lib.Comparable.S with type t := t
val compare : t Base__Ppx_compare_lib.compare
include Ppx_compare_lib.Equal.S with type t := t
val equal : t Base__Ppx_compare_lib.equal
val pp : t NS.pp
val move : reg_exps:(Reg.t * Exp.t) NS.iarray -> loc:Loc.t -> inst
val load : reg:Reg.t -> ptr:Exp.t -> len:Exp.t -> loc:Loc.t -> inst
val store : ptr:Exp.t -> exp:Exp.t -> len:Exp.t -> loc:Loc.t -> inst
val atomic_rmw : reg:Reg.t -> ptr:Exp.t -> exp:Exp.t -> len:Exp.t -> loc:Loc.t -> inst
val atomic_cmpxchg : reg:Reg.t -> ptr:Exp.t -> cmp:Exp.t -> exp:Exp.t -> len:Exp.t -> len1:Exp.t -> loc:Loc.t -> inst
val alloc : reg:Reg.t -> num:Exp.t -> len:int -> loc:Loc.t -> inst
val free : ptr:Exp.t -> loc:Loc.t -> inst
val nondet : reg:Reg.t option -> msg:string -> loc:Loc.t -> inst
val builtin : reg:Reg.t option -> name:Builtin.t -> args:Exp.t NS.iarray -> loc:Loc.t -> t
val loc : inst -> Loc.t
val locals : inst -> Reg.Set.t
val fold_exps : inst -> 's -> f:(Exp.t -> 's -> 's) -> 's