diff --git a/sledge/dune-common.in b/sledge/dune-common.in index 82f250a1d..70aece458 100644 --- a/sledge/dune-common.in +++ b/sledge/dune-common.in @@ -34,7 +34,8 @@ let flags exe_or_lib deps = (ocamlc_flags (%s)) (ocamlopt_flags (%s)) (preprocess - (pps + (staged_pps + ppx_import ppx_compare ppx_custom_printf ppx_deriving_cmdliner diff --git a/sledge/sledge.opam b/sledge/sledge.opam index c80ff428c..5af7da2ea 100644 --- a/sledge/sledge.opam +++ b/sledge/sledge.opam @@ -21,6 +21,7 @@ depends: [ "llvm" {= "8.0.0"} "ppx_compare" "ppx_deriving_cmdliner" {>= "0.4.2"} + "ppx_import" "ppx_hash" "shexp" "zarith" diff --git a/sledge/src/llair/frontend.ml b/sledge/src/llair/frontend.ml index 25968b7d4..fb21536c4 100644 --- a/sledge/src/llair/frontend.ml +++ b/sledge/src/llair/frontend.ml @@ -15,6 +15,16 @@ let pp_llvalue fs t = Format.pp_print_string fs (Llvm.string_of_llvalue t) let pp_llblock fs t = Format.pp_print_string fs (Llvm.string_of_llvalue (Llvm.value_of_block t)) +type lllinkage = [%import: Llvm.Linkage.t] [@@deriving sexp] +type llopcode = [%import: Llvm.Opcode.t] [@@deriving sexp] + +type llvaluekind = [%import: (Llvm.ValueKind.t[@with Opcode.t := llopcode])] +[@@deriving sexp] + +let _pp_lllinkage fs l = Sexp.pp_hum fs (sexp_of_lllinkage l) +let _pp_llopcode fs l = Sexp.pp_hum fs (sexp_of_llopcode l) +let _pp_llvaluekind fs l = Sexp.pp_hum fs (sexp_of_llvaluekind l) + exception Invalid_llvm of string let invalid_llvm : string -> 'a =