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

--- Comment #6 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Martin Jambor <jamb...@gcc.gnu.org>:

https://gcc.gnu.org/g:ac91af71c93462cbc701bbd104fa21894bb15e86

commit r11-4983-gac91af71c93462cbc701bbd104fa21894bb15e86
Author: Martin Jambor <mjam...@suse.cz>
Date:   Fri Nov 13 15:35:18 2020 +0100

    loops: Invoke lim after successful loop interchange

    This patch makes the entry point to loop invariant motion public, so
    that it can be called after loop interchange when that pass has
    swapped loops.  This avoids the non-LTO -Ofast run-time regressions of
    410.bwaves and 503.bwaves_r (which are 19% and 15% faster than current
    master on an AMD zen2 machine) while not introducing a full LIM pass
    into the pass pipeline.

    The patch also adds a parameter which allows not to perform any store
    motion so that it is not done after an interchange.

    gcc/ChangeLog:

    2020-11-12  Martin Jambor  <mjam...@suse.cz>

            PR tree-optimization/94406
            * tree-ssa-loop-im.c (tree_ssa_lim): Renamed to
            loop_invariant_motion_in_fun, added a parameter to control store
            motion.
            (pass_lim::execute): Adjust call to tree_ssa_lim, now
            loop_invariant_motion_in_fun.
            * tree-ssa-loop-manip.h (loop_invariant_motion_in_fun): Declare.
            * gimple-loop-interchange.cc (pass_linterchange::execute): Call
            loop_invariant_motion_in_fun if any interchange has been done.
  • [Bug tree-optimization/94406] 5... cvs-commit at gcc dot gnu.org via Gcc-bugs

Reply via email to