summaryrefslogtreecommitdiff
path: root/src/c_backend.mli
diff options
context:
space:
mode:
authorJon French2018-12-28 15:12:00 +0000
committerJon French2018-12-28 15:12:00 +0000
commitb59fba68e535f39b6285ec7f4f693107b6e34148 (patch)
tree3135513ac4b23f96b41f3d521990f1ce91206c99 /src/c_backend.mli
parent9f6a95882e1d3d057bcb83d098ba1b63925a4d1f (diff)
parent2c887e7d01331d3165120695594eac7a2650ec03 (diff)
Merge branch 'sail2' into rmem_interpreter
Diffstat (limited to 'src/c_backend.mli')
-rw-r--r--src/c_backend.mli14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/c_backend.mli b/src/c_backend.mli
index 170c5bd9..24f6e03b 100644
--- a/src/c_backend.mli
+++ b/src/c_backend.mli
@@ -53,7 +53,8 @@ open Type_check
(** Global compilation options *)
-val opt_ddump_flow_graphs : bool ref
+val opt_debug_flow_graphs : bool ref
+val opt_debug_function : string ref
val opt_trace : bool ref
val opt_static : bool ref
val opt_no_main : bool ref
@@ -63,17 +64,26 @@ val opt_no_main : bool ref
val optimize_primops : bool ref
val optimize_hoist_allocations : bool ref
val optimize_struct_updates : bool ref
+val optimize_alias : bool ref
+val optimize_experimental : bool ref
(** The compilation context. *)
type ctx
+(** Convert a typ to a IR ctyp *)
+val ctyp_of_typ : ctx -> Ast.typ -> ctyp
+
(** Create a context from a typechecking environment. This environment
should be the environment returned by typechecking the full AST. *)
val initial_ctx : Env.t -> ctx
+val compile_aexp : ctx -> Ast.typ Anf.aexp -> instr list * (clexp -> instr) * instr list
+
val compile_ast : ctx -> string list -> tannot Ast.defs -> unit
val bytecode_ast : ctx -> (cdef list -> cdef list) -> tannot Ast.defs -> cdef list
(** Rewriting steps for compiled ASTs *)
-val flatten_instrs : cdef -> cdef
+val flatten_instrs : instr list -> instr list
+
+val flatten_cdef : cdef -> cdef