Commit b57fab18 by Jiufu Guo Committed by Jiufu Guo

rs6000: re-enable web and rnreg with -funroll-loops

Previously, limited unrolling was enabled at O2 for powerpc in r278034.  At that
time, -fweb and -frename-registers were not enabled together with -funroll-loops
even for -O3.  After that, we notice there are some performance degradations on
SPEC2006fp which caused by without web and rnreg.  This patch enable -fweb
and -frename-registers for -funroll-loops to align original behavior before
r278034.

gcc/
2019-12-23  Jiufu Guo  <guojiufu@linux.ibm.com>

	* config/rs6000/rs6000.c (rs6000_option_override_internal): Enable
	-fweb and -frename-registers with -funroll-loops

From-SVN: r279725
parent f2a87993
2019-12-24 Jiufu Guo <guojiufu@linux.ibm.com>
* config/rs6000/rs6000.c (rs6000_option_override_internal): Enable
-fweb and -frename-registers with -funroll-loops
2019-12-22 Gerald Pfeifer <gerald@pfeifer.com> 2019-12-22 Gerald Pfeifer <gerald@pfeifer.com>
* doc/invoke.texi (-flto): Use "compile time" as a noun. * doc/invoke.texi (-flto): Use "compile time" as a noun.
...@@ -4538,12 +4538,19 @@ rs6000_option_override_internal (bool global_init_p) ...@@ -4538,12 +4538,19 @@ rs6000_option_override_internal (bool global_init_p)
param_sched_pressure_algorithm, param_sched_pressure_algorithm,
SCHED_PRESSURE_MODEL); SCHED_PRESSURE_MODEL);
/* Explicit -funroll-loops turns -munroll-only-small-loops off. */ /* Explicit -funroll-loops turns -munroll-only-small-loops off, and
if (((global_options_set.x_flag_unroll_loops && flag_unroll_loops) turns -fweb and -frename-registers on. */
if ((global_options_set.x_flag_unroll_loops && flag_unroll_loops)
|| (global_options_set.x_flag_unroll_all_loops || (global_options_set.x_flag_unroll_all_loops
&& flag_unroll_all_loops)) && flag_unroll_all_loops))
&& !global_options_set.x_unroll_only_small_loops) {
unroll_only_small_loops = 0; if (!global_options_set.x_unroll_only_small_loops)
unroll_only_small_loops = 0;
if (!global_options_set.x_flag_rename_registers)
flag_rename_registers = 1;
if (!global_options_set.x_flag_web)
flag_web = 1;
}
/* If using typedef char *va_list, signal that /* If using typedef char *va_list, signal that
__builtin_va_start (&ap, 0) can be optimized to __builtin_va_start (&ap, 0) can be optimized to
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment