summaryrefslogtreecommitdiff
path: root/src/sail.ml
diff options
context:
space:
mode:
authorBrian Campbell2017-11-14 12:33:14 +0000
committerBrian Campbell2017-11-14 12:33:14 +0000
commit7dc2a9aa2e140eb4475da65e73be5952c0d5c26e (patch)
tree25ad519094acd4be8321fb65328f61b949c6345a /src/sail.ml
parent29eb3472dfb65f39f558baff4c56688f03016592 (diff)
Automatic analysis for monomorphisation
Diffstat (limited to 'src/sail.ml')
-rw-r--r--src/sail.ml12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/sail.ml b/src/sail.ml
index 68dbcdbe..e7e965ba 100644
--- a/src/sail.ml
+++ b/src/sail.ml
@@ -114,6 +114,12 @@ let options = Arg.align ([
( "-ddump_raw_mono_ast",
Arg.Set opt_ddump_raw_mono_ast,
" (debug) dump the monomorphised ast before type-checking");
+ ( "-dmono_analysis",
+ Arg.Set_int opt_dmono_analysis,
+ " (debug) dump information about monomorphisation analysis: 0 silent, 3 max");
+ ( "-auto_mono",
+ Arg.Set opt_auto_mono,
+ " automatically infer how to monomorphise code");
( "-verbose",
Arg.Set opt_print_verbose,
" (debug) pretty-print the input to standard output");
@@ -168,9 +174,9 @@ let main() =
let (ast, type_envs) = check_ast ast in
let (ast, type_envs) =
- match !opt_mono_split with
- | [] -> ast, type_envs
- | locs -> monomorphise_ast locs ast
+ match !opt_mono_split, !opt_auto_mono with
+ | [], false -> ast, type_envs
+ | locs, _ -> monomorphise_ast locs type_envs ast
in
let ast =