aboutsummaryrefslogtreecommitdiffstats
path: root/driver
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-11-03 19:58:02 +0100
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-11-03 19:58:02 +0100
commitbabf0034fed52715ddeefdee4b8d0a365c1247ce (patch)
treee887cb44e2927c879d3bd6a7c5a970d4be5ff437 /driver
parent60aa5911a75eaead6503649c879bcc8860df0972 (diff)
parent025a185487c579f768fb747dd6e91a931a2ae66b (diff)
downloadcompcert-kvx-babf0034fed52715ddeefdee4b8d0a365c1247ce.tar.gz
compcert-kvx-babf0034fed52715ddeefdee4b8d0a365c1247ce.zip
Merge remote-tracking branch 'origin/kvx-work' into kvx-test-prepass
Diffstat (limited to 'driver')
-rw-r--r--driver/Clflags.ml1
-rw-r--r--driver/Driver.ml3
2 files changed, 4 insertions, 0 deletions
diff --git a/driver/Clflags.ml b/driver/Clflags.ml
index 68508f2e..bc8a7925 100644
--- a/driver/Clflags.ml
+++ b/driver/Clflags.ml
@@ -43,6 +43,7 @@ let option_ftailduplicate = ref 0 (* perform tail duplication for blocks of size
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_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 *)
(* Scheduling *)
let option_mtune = ref ""
diff --git a/driver/Driver.ml b/driver/Driver.ml
index ef4acee7..8ceb3a25 100644
--- a/driver/Driver.ml
+++ b/driver/Driver.ml
@@ -219,6 +219,8 @@ Processing options:
-ftracelinearize Uses branch prediction information to improve the Linearize [on]
-funrollsingle n Unrolls a single iteration of innermost loops of size n (not counting Inops) [0]
-funrollbody n Unrolls once the body of innermost loops of size n (not counting Inops) [0]
+ -flooprotate n Duplicates the header (condition computation part) of innermost loops to perform a loop rotate [0]
+ Doesn't duplicate if the size of that header is strictly greater than n
-fforward-moves Forward moves after CSE
-finline Perform inlining of functions [on]
-finline-functions-called-once Integrate functions only required by their
@@ -432,6 +434,7 @@ let cmdline_actions =
@ f_opt "predict" option_fpredict
@ [ Exact "-funrollsingle", Integer (fun n -> option_funrollsingle := n) ]
@ [ Exact "-funrollbody", Integer (fun n -> option_funrollbody := n) ]
+ @ [ Exact "-flooprotate", Integer (fun n -> option_flooprotate := n) ]
@ f_opt "tracelinearize" option_ftracelinearize
@ f_opt_str "prepass" option_fprepass option_fprepass_sched
@ f_opt_str "postpass" option_fpostpass option_fpostpass_sched