https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107692

--- Comment #11 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Hongyu Wang <hong...@gcc.gnu.org>:

https://gcc.gnu.org/g:8caf155a3d6e23e47bf55068ad23c23d4655a054

commit r13-4272-g8caf155a3d6e23e47bf55068ad23c23d4655a054
Author: Hongyu Wang <hongyu.w...@intel.com>
Date:   Sat Nov 19 09:38:00 2022 +0800

    i386: Only enable small loop unrolling in backend [PR 107692]

    Followed by the discussion in pr107692, -munroll-only-small-loops
    Does not turns on/off -funroll-loops, and current check in
    pass_rtl_unroll_loops::gate would cause -fno-unroll-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.

    gcc/ChangeLog:

            PR target/107692
            * 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.

    gcc/testsuite/ChangeLog:

            PR target/107692
            * gcc.dg/guality/loop-1.c: Remove additional option for ia32.
            * gcc.target/i386/pr86270.c: Add -fno-unroll-loops.
            * gcc.target/i386/pr93002.c: Likewise.

Reply via email to