https://gcc.gnu.org/g:4b83df548f3f16c8c5bd83d82801f8219984e089

commit r16-3935-g4b83df548f3f16c8c5bd83d82801f8219984e089
Author: Andrew Pinski <[email protected]>
Date:   Tue Sep 16 09:48:52 2025 -0700

    forwprop: Add a quick out for new_src_based_on_copy when both are decls
    
    If both operands that are being compared are decls, operand_equal_p will 
already
    handle that case so an early out can be done here.
    
    Bootstrapped and tested on x86_64-linux-gnu.
    
    gcc/ChangeLog:
    
            * tree-ssa-forwprop.cc (new_src_based_on_copy): An early out
            if both are decls.
    
    Signed-off-by: Andrew Pinski <[email protected]>

Diff:
---
 gcc/tree-ssa-forwprop.cc | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/gcc/tree-ssa-forwprop.cc b/gcc/tree-ssa-forwprop.cc
index f58a7b8c591d..9d389e1b9bfc 100644
--- a/gcc/tree-ssa-forwprop.cc
+++ b/gcc/tree-ssa-forwprop.cc
@@ -1473,6 +1473,10 @@ new_src_based_on_copy (tree src2, tree dest, tree src)
      where one field is the same size as the whole struct.  */
   if (operand_equal_p (dest, src2))
     return src;
+  /* if both dest and src2 are decls, then we know these 2
+     accesses can't be the same.  */
+  if (DECL_P (dest) && DECL_P (src2))
+    return NULL_TREE;
   /* A VCE can't be used with imag/real or BFR so reject them early. */
   if (TREE_CODE (src) == IMAGPART_EXPR
       || TREE_CODE (src) == REALPART_EXPR

Reply via email to