diff options
author | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2020-11-03 19:58:02 +0100 |
---|---|---|
committer | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2020-11-03 19:58:02 +0100 |
commit | babf0034fed52715ddeefdee4b8d0a365c1247ce (patch) | |
tree | e887cb44e2927c879d3bd6a7c5a970d4be5ff437 /driver | |
parent | 60aa5911a75eaead6503649c879bcc8860df0972 (diff) | |
parent | 025a185487c579f768fb747dd6e91a931a2ae66b (diff) | |
download | compcert-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.ml | 1 | ||||
-rw-r--r-- | driver/Driver.ml | 3 |
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 |