aboutsummaryrefslogtreecommitdiffstats
path: root/driver
diff options
context:
space:
mode:
authorCyril SIX <cyril.six@kalray.eu>2020-10-09 15:51:33 +0200
committerCyril SIX <cyril.six@kalray.eu>2020-10-09 15:51:33 +0200
commitb22f1165b23be33da6cb7f6ac681c14abec37c23 (patch)
tree284967da076b559ff63b39423672b591783792c9 /driver
parent3009ec015ab7261323c9e318cb703eaabca07d47 (diff)
downloadcompcert-kvx-b22f1165b23be33da6cb7f6ac681c14abec37c23.tar.gz
compcert-kvx-b22f1165b23be33da6cb7f6ac681c14abec37c23.zip
new flags: -fpredict, -ftailduplicate n, -funrollsingle n instead of just -fduplicate n
Diffstat (limited to 'driver')
-rw-r--r--driver/Clflags.ml10
-rw-r--r--driver/Driver.ml5
2 files changed, 10 insertions, 5 deletions
diff --git a/driver/Clflags.ml b/driver/Clflags.ml
index eb21b3f8..8bc7a938 100644
--- a/driver/Clflags.ml
+++ b/driver/Clflags.ml
@@ -33,9 +33,13 @@ let option_fcse3_across_calls = ref false
let option_fcse3_across_merges = ref true
let option_fcse3_glb = ref true
let option_fredundancy = ref true
-let option_fduplicate = ref (-1)
-let option_finvertcond = ref true
-let option_ftracelinearize = ref false
+
+(** Options relative to superblock scheduling *)
+let option_fpredict = ref true (* insert static branch prediction information, and swaps ifso/ifnot branches accordingly *)
+let option_ftailduplicate = ref 0 (* perform tail duplication for blocks of size n *)
+let option_ftracelinearize = ref true (* uses branch prediction information to improve the linearization *)
+let option_funrollsingle = ref 0 (* unroll a single iteration of innermost loops of size n *)
+
let option_fpostpass = ref true
let option_fpostpass_sched = ref "list"
let option_fifconversion = ref true
diff --git a/driver/Driver.ml b/driver/Driver.ml
index 90afb812..b0b1cdea 100644
--- a/driver/Driver.ml
+++ b/driver/Driver.ml
@@ -420,8 +420,9 @@ let cmdline_actions =
@ f_opt "move-loop-invariants" option_fmove_loop_invariants
@ f_opt "redundancy" option_fredundancy
@ f_opt "postpass" option_fpostpass
- @ [ Exact "-fduplicate", Integer (fun n -> option_fduplicate := n) ]
- @ f_opt "invertcond" option_finvertcond
+ @ [ Exact "-ftailduplicate", Integer (fun n -> option_ftailduplicate := n) ]
+ @ f_opt "predict" option_fpredict
+ @ [ Exact "-funrollsingle", Integer (fun n -> option_funrollsingle := n) ]
@ f_opt "tracelinearize" option_ftracelinearize
@ f_opt_str "postpass" option_fpostpass option_fpostpass_sched
@ f_opt "inline" option_finline