From: Richard Biener Date: Thu, 10 Nov 2022 14:02:37 +0000 (+0100) Subject: better PHI copy propagation for forwprop X-Git-Tag: basepoints/gcc-14~3328 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f1b76811f2c3773e8cabcc07932bf13e82e264db;p=thirdparty%2Fgcc.git better PHI copy propagation for forwprop We can handle _1 = PHI <_1, _2> as a copy. PR tree-optimization/84646 * tree-ssa-forwprop.cc (pass_forwprop::execute): Improve copy propagation across PHIs. --- diff --git a/gcc/tree-ssa-forwprop.cc b/gcc/tree-ssa-forwprop.cc index 4b693ef095c5..7c7942600ef2 100644 --- a/gcc/tree-ssa-forwprop.cc +++ b/gcc/tree-ssa-forwprop.cc @@ -3384,7 +3384,12 @@ pass_forwprop::execute (function *fun) FOR_EACH_PHI_ARG (use_p, phi, it, SSA_OP_USE) { tree use = USE_FROM_PTR (use_p); - if (! first) + if (use == res) + /* The PHI result can also appear on a backedge, if so + we can ignore this case for the purpose of determining + the singular value. */ + ; + else if (! first) first = use; else if (! operand_equal_p (first, use, 0)) {