diff options
author | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2020-03-14 09:19:26 +0100 |
---|---|---|
committer | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2020-03-14 09:19:26 +0100 |
commit | bbe0809b3cd483ce5fc82e4f2d0a106823c54f26 (patch) | |
tree | 4088aa9ff1394a76739a299e6b0bd10b6aa6426e /driver | |
parent | d5e49c9d1e68a2b5305fb18b051a272345283275 (diff) | |
download | compcert-kvx-bbe0809b3cd483ce5fc82e4f2d0a106823c54f26.tar.gz compcert-kvx-bbe0809b3cd483ce5fc82e4f2d0a106823c54f26.zip |
CSE3 alias analysis
Diffstat (limited to 'driver')
-rw-r--r-- | driver/Clflags.ml | 5 | ||||
-rw-r--r-- | driver/Compopts.v | 3 | ||||
-rw-r--r-- | driver/Driver.ml | 6 |
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) ] |