diff options
author | Justus Fasse <justus.fasse@etu.univ-grenoble-alpes.fr> | 2021-07-16 15:41:42 +0200 |
---|---|---|
committer | Justus Fasse <justus.fasse@etu.univ-grenoble-alpes.fr> | 2021-07-16 15:41:42 +0200 |
commit | 945a2e4d35cbf84d40129677804b623e03c4754f (patch) | |
tree | d47b00141b1092bfc04f60868cb98f21aabcebb6 | |
parent | 4d56e04147c59abcca0542e7cc69e76647d6002b (diff) | |
download | compcert-kvx-945a2e4d35cbf84d40129677804b623e03c4754f.tar.gz compcert-kvx-945a2e4d35cbf84d40129677804b623e03c4754f.zip |
Add additional compiler flags
-rw-r--r-- | driver/Clflags.ml | 9 | ||||
-rw-r--r-- | driver/Driver.ml | 3 |
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 |