diff options
-rw-r--r-- | gcc/tree-ssa-forwprop.cc | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/gcc/tree-ssa-forwprop.cc b/gcc/tree-ssa-forwprop.cc index 4b693ef..7c79426 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)) { |