As requested in 
https://inbox.sourceware.org/gcc-patches/CAFiYyc162F+i=majzQqutFcq1y=dtrojvc4z+v3gp8n7utn...@mail.gmail.com/T/#u.
This refines when TODO_update_address_taken is set so it only set when folding 
of a call.
This should speed up compile time slightly if we don't fold a call during the 
last forwprop.

Boostrapped and tested on x86_64-linux-gnu.

        PR tree-optimization/122143
gcc/ChangeLog:

        * tree-ssa-forwprop.cc (pass_forwprop::execute): Restrict setting
        TODO_update_address_taken only when the statement was a call before 
fold_stmt.

Signed-off-by: Andrew Pinski <[email protected]>
---
 gcc/tree-ssa-forwprop.cc | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/gcc/tree-ssa-forwprop.cc b/gcc/tree-ssa-forwprop.cc
index a2c8d103629..ee3bb401f31 100644
--- a/gcc/tree-ssa-forwprop.cc
+++ b/gcc/tree-ssa-forwprop.cc
@@ -5451,7 +5451,8 @@ pass_forwprop::execute (function *fun)
          do
            {
              gimple *orig_stmt = stmt = gsi_stmt (gsi);
-             bool was_noreturn = (is_gimple_call (stmt)
+             bool was_call = is_gimple_call (stmt);
+             bool was_noreturn = (was_call
                                   && gimple_call_noreturn_p (stmt));
              changed = false;
 
@@ -5465,8 +5466,10 @@ pass_forwprop::execute (function *fun)
                  changed = true;
                  /* There is no updating of the address
                     taken after the last forwprop so update
-                    the addresses when a folding happened. */
-                 if (last_p)
+                    the addresses when a folding happened to a call.
+                    The va_* builtins can remove taking of the address so
+                    can the sincos->cexpi transformation.  See PR 39643 and PR 
20983. */
+                 if (was_call && last_p)
                    todoflags |= TODO_update_address_taken;
                  stmt = gsi_stmt (gsi);
                  /* Cleanup the CFG if we simplified a condition to
-- 
2.43.0

Reply via email to