aboutsummaryrefslogtreecommitdiffstats
path: root/driver
diff options
context:
space:
mode:
authorDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-03-14 09:19:26 +0100
committerDavid Monniaux <david.monniaux@univ-grenoble-alpes.fr>2020-03-14 09:19:26 +0100
commitbbe0809b3cd483ce5fc82e4f2d0a106823c54f26 (patch)
tree4088aa9ff1394a76739a299e6b0bd10b6aa6426e /driver
parentd5e49c9d1e68a2b5305fb18b051a272345283275 (diff)
downloadcompcert-kvx-bbe0809b3cd483ce5fc82e4f2d0a106823c54f26.tar.gz
compcert-kvx-bbe0809b3cd483ce5fc82e4f2d0a106823c54f26.zip
CSE3 alias analysis
Diffstat (limited to 'driver')
-rw-r--r--driver/Clflags.ml5
-rw-r--r--driver/Compopts.v3
-rw-r--r--driver/Driver.ml6
3 files changed, 10 insertions, 4 deletions
diff --git a/driver/Clflags.ml b/driver/Clflags.ml
index 7e3b23d8..a8594be4 100644
--- a/driver/Clflags.ml
+++ b/driver/Clflags.ml
@@ -25,9 +25,10 @@ let option_ffpu = ref true
let option_ffloatconstprop = ref 2
let option_ftailcalls = ref true
let option_fconstprop = ref true
-let option_fcse = ref true
-let option_fcse2 = ref true
+let option_fcse = ref false
+let option_fcse2 = ref false
let option_fcse3 = ref true
+let option_fcse3_alias_analysis = ref true
let option_fredundancy = ref true
let option_fduplicate = ref 0
let option_finvertcond = ref true
diff --git a/driver/Compopts.v b/driver/Compopts.v
index 1f952164..f1ab4f7b 100644
--- a/driver/Compopts.v
+++ b/driver/Compopts.v
@@ -46,6 +46,9 @@ Parameter optim_CSE2: unit -> bool.
(** Flag -fcse3. For DMonniaux's common subexpression elimination. *)
Parameter optim_CSE3: unit -> bool.
+(** Flag -fcse3-alias-analysis. For DMonniaux's common subexpression elimination. *)
+Parameter optim_CSE3_alias_analysis: unit -> bool.
+
(** Flag -fredundancy. For dead code elimination. *)
Parameter optim_redundancy: unit -> bool.
diff --git a/driver/Driver.ml b/driver/Driver.ml
index 12b61d86..133bac0a 100644
--- a/driver/Driver.ml
+++ b/driver/Driver.ml
@@ -194,9 +194,10 @@ Processing options:
-fconst-prop Perform global constant propagation [on]
-ffloat-const-prop <n> Control constant propagation of floats
(<n>=0: none, <n>=1: limited, <n>=2: full; default is full)
- -fcse Perform common subexpression elimination [on]
- -fcse2 Perform inter-loop common subexpression elimination [on]
+ -fcse Perform common subexpression elimination [off]
+ -fcse2 Perform inter-loop common subexpression elimination [off]
-fcse3 Perform inter-loop common subexpression elimination [on]
+ -fcse3-alias-analysis Perform inter-loop common subexpression elimination with alias analysis [on]
-fredundancy Perform redundancy elimination [on]
-fpostpass Perform postpass scheduling (only for K1 architecture) [on]
-fpostpass= <optim> Perform postpass scheduling with the specified optimization [list]
@@ -393,6 +394,7 @@ let cmdline_actions =
@ f_opt "cse" option_fcse
@ f_opt "cse2" option_fcse2
@ f_opt "cse3" option_fcse3
+ @ f_opt "cse3-alias-analysis" option_fcse3_alias_analysis
@ f_opt "redundancy" option_fredundancy
@ f_opt "postpass" option_fpostpass
@ [ Exact "-fduplicate", Integer (fun n -> option_fduplicate := n) ]