From: guojiufu Date: Thu, 28 May 2020 06:10:39 +0000 (+0800) Subject: rs6000: allow cunroll to grow size according to -funroll-loop or -fpeel-loops X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=557a40f599f64e40cc1b20254bf82acc775375f5;p=gcc.git rs6000: allow cunroll to grow size according to -funroll-loop or -fpeel-loops Previously, flag_unroll_loops was turned on at -O2 implicitly. This also turned on cunroll with allowance size increasing, and cunroll will unroll/peel the loop even the loop is complex like code in PR95018. With this patch, size growth for cunroll is allowed only for if -funroll-loops or -fpeel-loops or -O3 is specified explicitly. gcc/ChangeLog 2020-06-07 Jiufu Guo PR target/95018 * config/rs6000/rs6000.c (rs6000_option_override_internal): Override flag_cunroll_grow_size. --- diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c index 42d517c1f65..ff09e9378ef 100644 --- a/gcc/config/rs6000/rs6000.c +++ b/gcc/config/rs6000/rs6000.c @@ -4567,7 +4567,12 @@ rs6000_option_override_internal (bool global_init_p) unroll_only_small_loops = 0; if (!global_options_set.x_flag_rename_registers) flag_rename_registers = 1; + if (!global_options_set.x_flag_cunroll_grow_size) + flag_cunroll_grow_size = 1; } + else + if (!global_options_set.x_flag_cunroll_grow_size) + flag_cunroll_grow_size = flag_peel_loops || optimize >= 3; /* If using typedef char *va_list, signal that __builtin_va_start (&ap, 0) can be optimized to