~james/reorder

2
908ea7335d65c52f45e8387f6c42e462b25a624a
main
reorder/syntax.mli -rw-r--r--737 bytes ViewLogBlameView rawPermalink 908ea7335d feat(core): initialise tso checking and fence synthesis 28 days ago
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
type instruction =
  | Store of int * int64 | Load of int * int | Fence
  | Move of int * int64 | Branch of int * int64 * int
  | Enter | Leave | Exchange of int * int * int64

type goal = Overlap | Outcome of {
  registers : (int * int * int64) list;
  memory : (int * int64) list;
  drained : bool;
}

type model = Sc | Tso
type location = int * int
type t = {
  name : string;
  names : string array;
  bound : int;
  threads : instruction array array;
  candidates : location list;
  goal : goal;
}

val validate : t -> unit
val decode : Sexp.t -> t
val encode : t -> Sexp.t
val load : string -> t
val instruction : instruction -> Sexp.t
val location : Sexp.t -> location
val model : string -> model
val model_name : model -> string