[Bug tree-optimization/102155] LIM fill_always_executed_in handles contains_call incorrectly

cvs-commit at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Thu Sep 2 05:55:49 GMT 2021


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

--- Comment #1 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Richard Biener <rguenth@gcc.gnu.org>:

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

commit r12-3307-gf482bf2af86990329b4df660f8c1eb9e094de9f9
Author: Richard Biener <rguenther@suse.de>
Date:   Wed Sep 1 09:51:45 2021 +0200

    tree-optimization/102155 - fix LIM fill_always_executed_in CFG walk

    This fixes the CFG walk order of fill_always_executed_in to use
    RPO oder rather than the dominator based order computed by
    get_loop_body_in_dom_order.  That fixes correctness issues with
    unordered dominator children.

    The RPO order computed by rev_post_order_and_mark_dfs_back_seme in
    its for-iteration mode is a good match for the algorithm.

    2021-09-01  Richard Biener  <rguenther@suse.de>

            PR tree-optimization/102155
            * tree-ssa-loop-im.c (fill_always_executed_in_1): Iterate
            over a part of the RPO array and do not recurse here.
            Dump blocks marked as always executed.
            (fill_always_executed_in): Walk over the RPO array and
            process loops whose header we run into.
            (loop_invariant_motion_in_fun): Compute the first RPO
            using rev_post_order_and_mark_dfs_back_seme in iteration
            order and pass that to fill_always_executed_in.


More information about the Gcc-bugs mailing list