diff options
author | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2020-04-23 15:19:31 +0200 |
---|---|---|
committer | David Monniaux <david.monniaux@univ-grenoble-alpes.fr> | 2020-04-23 15:19:31 +0200 |
commit | 54b5f2c669c4c3153a0ea1a2112a2159cf04471c (patch) | |
tree | fd0d675db12adc9ead37ac028480f92bf8727589 /driver | |
parent | c991b6f67778634cf1c8df5fb429a74d068c8fb8 (diff) | |
parent | 7b0d7a74ccfaf5843c41e2844e02e94e9a76bfd8 (diff) | |
download | compcert-kvx-54b5f2c669c4c3153a0ea1a2112a2159cf04471c.tar.gz compcert-kvx-54b5f2c669c4c3153a0ea1a2112a2159cf04471c.zip |
Merge remote-tracking branch 'origin/mppa-licm' into mppa-features
Diffstat (limited to 'driver')
-rw-r--r-- | driver/Clflags.ml | 5 | ||||
-rw-r--r-- | driver/Compopts.v | 5 | ||||
-rw-r--r-- | driver/Driver.ml | 5 |
3 files changed, 11 insertions, 4 deletions
diff --git a/driver/Clflags.ml b/driver/Clflags.ml index bb40844e..8f3b6605 100644 --- a/driver/Clflags.ml +++ b/driver/Clflags.ml @@ -25,10 +25,11 @@ let option_ffpu = ref true let option_ffloatconstprop = ref 2 let option_ftailcalls = ref true let option_fconstprop = ref true -let option_fcse = ref false +let option_fcse = ref true let option_fcse2 = ref false let option_fcse3 = ref true let option_fcse3_alias_analysis = ref true +let option_fcse3_across_calls = ref false let option_fredundancy = ref true let option_fduplicate = ref (-1) let option_finvertcond = ref true @@ -89,6 +90,6 @@ let option_fmove_loop_invariants = ref true let option_fnontrap_loads = ref true let option_all_loads_nontrap = ref false let option_inline_auto_threshold = ref 0 - let option_profile_arcs = ref false let option_fbranch_probabilities = ref true +let option_debug_compcert = ref 0 diff --git a/driver/Compopts.v b/driver/Compopts.v index 58ac62b7..3c5ccf36 100644 --- a/driver/Compopts.v +++ b/driver/Compopts.v @@ -45,9 +45,12 @@ 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. *) +(** Flag -fcse3-alias-analysis. For DMonniaux's common subexpression elimination. Perform a simple alias analysis. *) Parameter optim_CSE3_alias_analysis: unit -> bool. +(** Flag -fcse3-across-calls. For DMonniaux's common subexpression elimination. Propagate information across function calls (may increase register pressure). *) +Parameter optim_CSE3_across_calls: unit -> bool. + (** Flag -fmove-loop-invariants. *) Parameter optim_move_loop_invariants: unit -> bool. diff --git a/driver/Driver.ml b/driver/Driver.ml index 20c10ace..b9060ca7 100644 --- a/driver/Driver.ml +++ b/driver/Driver.ml @@ -195,10 +195,11 @@ 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 [off] + -fcse Perform common subexpression elimination [on] -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] + -fcse3-across-calls Propagate CSE3 information across function calls [off] -fmove-loop-invariants Perform loop-invariant code motion [off] -fredundancy Perform redundancy elimination [on] -fpostpass Perform postpass scheduling (only for K1 architecture) [on] @@ -339,6 +340,7 @@ let cmdline_actions = Exact "-Obranchless", Set option_Obranchless; Exact "-fprofile-use=", String (fun s -> Profilingaux.load_profiling_info s); Exact "-finline-auto-threshold", Integer (fun n -> option_inline_auto_threshold := n); + Exact "-debug-compcert", Integer (fun n -> option_debug_compcert := n); Exact "-fsmall-data", Integer(fun n -> option_small_data := n); Exact "-fsmall-const", Integer(fun n -> option_small_const := n); Exact "-ffloat-const-prop", Integer(fun n -> option_ffloatconstprop := n); @@ -410,6 +412,7 @@ let cmdline_actions = @ f_opt "cse2" option_fcse2 @ f_opt "cse3" option_fcse3 @ f_opt "cse3-alias-analysis" option_fcse3_alias_analysis + @ f_opt "cse3-across-calls" option_fcse3_across_calls @ f_opt "move-loop-invariants" option_fmove_loop_invariants @ f_opt "redundancy" option_fredundancy @ f_opt "postpass" option_fpostpass |