aboutsummaryrefslogtreecommitdiffstats
path: root/driver/Driver.ml
diff options
context:
space:
mode:
authorCyril SIX <cyril.six@kalray.eu>2020-01-27 11:43:00 +0100
committerCyril SIX <cyril.six@kalray.eu>2020-01-27 11:43:00 +0100
commit893827f54addca2facc19a8f342b380d63114130 (patch)
treea6dd12cc5313a996d94806b5c6711f27ef361064 /driver/Driver.ml
parent8aa9cb8c221ad4f2d27a7c54eca256bc70425aff (diff)
downloadcompcert-kvx-893827f54addca2facc19a8f342b380d63114130.tar.gz
compcert-kvx-893827f54addca2facc19a8f342b380d63114130.zip
Added a flag to desactivate tail duplication
Diffstat (limited to 'driver/Driver.ml')
-rw-r--r--driver/Driver.ml5
1 files changed, 4 insertions, 1 deletions
diff --git a/driver/Driver.ml b/driver/Driver.ml
index 992cf8c4..5d08dc6b 100644
--- a/driver/Driver.ml
+++ b/driver/Driver.ml
@@ -199,6 +199,7 @@ Processing options:
-fpostpass Perform postpass scheduling (only for K1 architecture) [on]
-fpostpass= <optim> Perform postpass scheduling with the specified optimization [list]
(<optim>=list: list scheduling, <optim>=ilp: ILP, <optim>=greedy: just packing bundles)
+ -fduplicate Perform tail duplication to form superblocks on predicted traces
-fforward-moves Forward moves after CSE
-finline Perform inlining of functions [on]
-finline-functions-called-once Integrate functions only required by their
@@ -260,6 +261,7 @@ let dump_mnemonics destfile =
let optimization_options = [
option_ftailcalls; option_fifconversion; option_fconstprop; option_fcse;
option_fpostpass; option_fredundancy; option_finline_functions_called_once;
+ option_fduplicate
]
let set_all opts () = List.iter (fun r -> r := true) opts
@@ -310,7 +312,7 @@ let cmdline_actions =
[
Exact "-O0", Unit (unset_all optimization_options);
Exact "-O", Unit (set_all optimization_options);
- _Regexp "-O1", Self (fun _ -> set_all optimization_options (); option_fpostpass := false);
+ _Regexp "-O1", Self (fun _ -> set_all optimization_options (); option_fpostpass := false; option_fduplicate := false);
_Regexp "-O[123]$", Unit (set_all optimization_options);
Exact "-Os", Set option_Osize;
Exact "-Obranchless", Set option_Obranchless;
@@ -384,6 +386,7 @@ let cmdline_actions =
@ f_opt "cse" option_fcse
@ f_opt "redundancy" option_fredundancy
@ f_opt "postpass" option_fpostpass
+ @ f_opt "duplicate" option_fduplicate
@ f_opt_str "postpass" option_fpostpass option_fpostpass_sched
@ f_opt "inline" option_finline
@ f_opt "inline-functions-called-once" option_finline_functions_called_once