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]>
---
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 f58a7b8c591..9d389e1b9bf 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
--
2.43.0