]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
cfgexpand: Update cache during the original DFS walk
authorAndrew Pinski <quic_apinski@quicinc.com>
Wed, 4 Dec 2024 02:57:45 +0000 (18:57 -0800)
committerAndrew Pinski <quic_apinski@quicinc.com>
Tue, 13 May 2025 15:27:31 +0000 (08:27 -0700)
This is a small optimization which can improve how many times are need through the update loop.
It can reduce the number of times in the update loop by maybe 1 times.

Bootstrapped and tested on x86_64-linux-gnu.

gcc/ChangeLog:

* cfgexpand.cc (vars_ssa_cache::operator()): Update the cache if the use is already
has a cache.

Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
gcc/cfgexpand.cc

index 0e76d340d262944d5accb0316a39bd559dc030b6..277ef659f3064f40b0f13470a2630c3492acaf3b 100644 (file)
@@ -766,7 +766,12 @@ vars_ssa_cache::operator() (tree name)
 
       /* If the cache exists for the use, don't try to recreate it. */
       if (exists (use))
-       continue;
+       {
+         /* Update the cache here, this can reduce the number of
+            times through the update loop below.  */
+         update (old_name, use);
+         continue;
+       }
 
       /* Create the cache bitmap for the use and also
         so we don't go into an infinite loop for some phi nodes with loops.  */