On Tue, May 13, 2025 at 12:48 AM Andrew Pinski <quic_apin...@quicinc.com> wrote:
>
> This is a small optimization, the reversed order of the walk of 
> update_cache_list queue.
> The queue is pushed in Pre-order/NLR, reversing the order will reduce how 
> many times we
> need to go through the loop as we update the nodes which might have a link 
> back to another
> one first.
>
> Bootstrapped and tested on x86_64-linux-gnu.

OK.

> gcc/ChangeLog:
>
>         * cfgexpand.cc (vars_ssa_cache::operator()): Reverse the order of the 
> going
>         through the update list.
>
> Signed-off-by: Andrew Pinski <quic_apin...@quicinc.com>
> ---
>  gcc/cfgexpand.cc | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/gcc/cfgexpand.cc b/gcc/cfgexpand.cc
> index 2b27076658f..0e76d340d26 100644
> --- a/gcc/cfgexpand.cc
> +++ b/gcc/cfgexpand.cc
> @@ -804,9 +804,11 @@ vars_ssa_cache::operator() (tree name)
>    bool changed;
>    do {
>      changed = false;
> -    for (auto &e : update_cache_list)
> +    unsigned int i;
> +    std::pair<tree,tree> *e;
> +    FOR_EACH_VEC_ELT_REVERSE (update_cache_list, i, e)
>        {
> -       if (update (e.second, e.first))
> +       if (update (e->second, e->first))
>           changed = true;
>        }
>    } while (changed);
> --
> 2.43.0
>

Reply via email to