better PHI copy propagation for forwprop
authorRichard Biener <rguenther@suse.de>
Thu, 10 Nov 2022 14:02:37 +0000 (15:02 +0100)
committerRichard Biener <rguenther@suse.de>
Thu, 10 Nov 2022 14:19:43 +0000 (15:19 +0100)
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.

gcc/tree-ssa-forwprop.cc

index 4b693ef..7c79426 100644 (file)
@@ -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))
                {