On Tue, Nov 22, 2022 at 1:41 AM Jeff Law via Gcc-patches <gcc-patches@gcc.gnu.org> wrote: > > > On 11/18/22 23:25, Hongyu Wang via Gcc-patches wrote: > > Hi, > > > > Followed by the discussion in pr107602, -munroll-only-small-loops > > Does not turns on/off -funroll-loops, and current check in > > pass_rtl_unroll_loops::gate would cause -funroll-loops do not take > > effect. Revert the change about targetm.loop_unroll_adjust and apply > > the backend option change to strictly follow the rule that > > -funroll-loops takes full control of loop unrolling, and > > munroll-only-small-loops just change its behavior to unroll small size > > loops. > > > > Bootstrapped and regtested on x86-64-pc-linux-gnu. > > > > Ok for trunk? > > > > gcc/ChangeLog: > > > > PR target/107602 > > * common/config/i386/i386-common.cc (ix86_optimization_table): > > Enable loop unroll O2, disable -fweb and -frename-registers > > by default. > > * config/i386/i386-options.cc > > (ix86_override_options_after_change): > > Disable small loop unroll when funroll-loops enabled, reset > > cunroll_grow_size when it is not explicitly enabled. > > (ix86_option_override_internal): Call > > ix86_override_options_after_change instead of calling > > ix86_recompute_optlev_based_flags and ix86_default_align > > separately. > > * config/i386/i386.cc (ix86_loop_unroll_adjust): Adjust unroll > > factor if -munroll-only-small-loops enabled. > > * loop-init.cc (pass_rtl_unroll_loops::gate): Do not enable > > loop unrolling for -O2-speed. > > (pass_rtl_unroll_loops::execute): Rmove > > targetm.loop_unroll_adjust check. > The reversion of the loop-init.cc changes is fine. The x86 maintainers > will need to chime in on the rest. Consider installing the loop-init.cc > reversion immediately as the current state has regressed s390 and > potentially other targets. x86 part is ok. > > > jeff >
-- BR, Hongtao