aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustus Fasse <justus.fasse@etu.univ-grenoble-alpes.fr>2021-07-16 15:41:42 +0200
committerJustus Fasse <justus.fasse@etu.univ-grenoble-alpes.fr>2021-07-16 15:41:42 +0200
commit945a2e4d35cbf84d40129677804b623e03c4754f (patch)
treed47b00141b1092bfc04f60868cb98f21aabcebb6
parent4d56e04147c59abcca0542e7cc69e76647d6002b (diff)
downloadcompcert-kvx-945a2e4d35cbf84d40129677804b623e03c4754f.tar.gz
compcert-kvx-945a2e4d35cbf84d40129677804b623e03c4754f.zip
Add additional compiler flags
-rw-r--r--driver/Clflags.ml9
-rw-r--r--driver/Driver.ml3
2 files changed, 11 insertions, 1 deletions
diff --git a/driver/Clflags.ml b/driver/Clflags.ml
index 6f828bdd..dcde9f41 100644
--- a/driver/Clflags.ml
+++ b/driver/Clflags.ml
@@ -47,10 +47,17 @@ let option_ftracelinearize = ref true (* uses branch prediction information to i
let option_funrollsingle = ref 0 (* unroll a single iteration of innermost loops of size n *)
let option_funrollbody = ref 0 (* unroll the body of innermost loops of size n *)
let option_flooprotate = ref 0 (* rotate the innermost loops to have the condition inside the loop body *)
-let option_fliftif = ref 0 (* lift if, moving it above previously unpredicated options, incurs code duplication *)
+let option_fliftif = ref 0 (* Move and or duplicate code off of a superblock by first introducing a redundant if and then leveraging Duplicate and CSE3. *)
+
+(* move_stroes | no_move_stores
+ * empty if this skip is to be skipped *)
+let option_prepass_past_side_exits = ref false
+(* Pick scheduling heuristic to decide which instructions to copy via if-lifting *)
+let option_prepass_past_side_exits_sched = ref "move_stores"
(* Weak Software Pipelining *)
let option_fpoormansssa = ref false
+let option_ftargetinnerloops = ref false
(* Scheduling *)
let option_mtune = ref ""
diff --git a/driver/Driver.ml b/driver/Driver.ml
index 092cd23b..20f8c756 100644
--- a/driver/Driver.ml
+++ b/driver/Driver.ml
@@ -425,6 +425,7 @@ let cmdline_actions =
@ f_opt "redundancy" option_fredundancy
@ [ Exact "-mtune", String (fun s -> option_mtune := s) ]
@ f_opt "poormansssa" option_fpoormansssa
+ @ f_opt "target_inner_loops" option_ftargetinnerloops
@ f_opt "prepass" option_fprepass
@ f_opt "postpass" option_fpostpass
@ [ Exact "-ftailduplicate", Integer (fun n -> option_ftailduplicate := n) ]
@@ -433,6 +434,8 @@ let cmdline_actions =
@ [ Exact "-funrollbody", Integer (fun n -> option_funrollbody := n) ]
@ [ Exact "-flooprotate", Integer (fun n -> option_flooprotate := n) ]
@ [ Exact "-fliftif", Integer (fun n -> option_fliftif := n) ]
+ @ f_opt "prepass_past_side_exits" option_prepass_past_side_exits
+ @ f_opt_str "prepass_past_side_exits" option_prepass_past_side_exits option_prepass_past_side_exits_sched
@ f_opt "tracelinearize" option_ftracelinearize
@ f_opt_str "prepass" option_fprepass option_fprepass_sched
@ f_opt_str "postpass" option_fpostpass option_fpostpass_sched