aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Liska <mliska@suse.cz>2021-10-12 16:05:49 +0200
committerMartin Liska <mliska@suse.cz>2021-10-13 15:02:43 +0200
commite415bc4c035b1b655cf2cafcbe515382d1cefc93 (patch)
tree03fb7965fb001d52d8a39fe0955c79ba6b6092b5
parent3c0194d7ff21d61c02f3c6b111c83ef24a69e1f0 (diff)
downloadgcc-e415bc4c035b1b655cf2cafcbe515382d1cefc93.zip
gcc-e415bc4c035b1b655cf2cafcbe515382d1cefc93.tar.gz
gcc-e415bc4c035b1b655cf2cafcbe515382d1cefc93.tar.bz2
Fix handling of flag_rename_registers by a target.
PR target/102688 gcc/ChangeLog: * common.opt: Use EnabledBy instead of detection in finish_options and process_options. * opts.c (finish_options): Remove handling of x_flag_unroll_all_loops. * toplev.c (process_options): Likewise for flag_web and flag_rename_registers.
-rw-r--r--gcc/common.opt6
-rw-r--r--gcc/opts.c5
-rw-r--r--gcc/toplev.c7
3 files changed, 3 insertions, 15 deletions
diff --git a/gcc/common.opt b/gcc/common.opt
index 4099eff..1eedfea 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -2399,7 +2399,7 @@ Common Var(flag_live_range_shrinkage) Init(0) Optimization
Relief of register pressure through live range shrinkage.
frename-registers
-Common Var(flag_rename_registers) Optimization
+Common Var(flag_rename_registers) Optimization EnabledBy(funroll-loops)
Perform a register renaming optimization pass.
fschedule-fusion
@@ -2935,7 +2935,7 @@ Common Var(flag_unit_at_a_time) Init(1)
Compile whole compilation unit at a time.
funroll-loops
-Common Var(flag_unroll_loops) Optimization
+Common Var(flag_unroll_loops) Optimization EnabledBy(funroll-all-loops)
Perform loop unrolling when iteration count is known.
funroll-all-loops
@@ -3158,7 +3158,7 @@ Common Var(flag_value_profile_transformations) Optimization
Use expression value profiles in optimizations.
fweb
-Common Var(flag_web) Optimization
+Common Var(flag_web) Optimization EnabledBy(funroll-loops)
Construct webs and split unrelated uses of single variable.
ftree-builtin-call-dce
diff --git a/gcc/opts.c b/gcc/opts.c
index 2116c29..fc71b6e 100644
--- a/gcc/opts.c
+++ b/gcc/opts.c
@@ -1321,11 +1321,6 @@ finish_options (struct gcc_options *opts, struct gcc_options *opts_set,
opts->x_flag_live_patching,
loc);
- /* Unrolling all loops implies that standard loop unrolling must also
- be done. */
- if (opts->x_flag_unroll_all_loops)
- opts->x_flag_unroll_loops = 1;
-
/* Allow cunroll to grow size accordingly. */
if (!opts_set->x_flag_cunroll_grow_size)
opts->x_flag_cunroll_grow_size
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 167feac..81546b1 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -1331,13 +1331,6 @@ process_options (bool no_backend)
flag_abi_version = 2;
}
- /* web and rename-registers help when run after loop unrolling. */
- if (!OPTION_SET_P (flag_web))
- flag_web = flag_unroll_loops;
-
- if (!OPTION_SET_P (flag_rename_registers))
- flag_rename_registers = flag_unroll_loops;
-
if (flag_non_call_exceptions)
flag_asynchronous_unwind_tables = 1;
if (flag_asynchronous_unwind_tables)