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.


jeff

Reply via email to