https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87402

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
Caused by the fix for PR87263 where I reverted some "fixes" (you might call
them workarounds) for earlier -O[1g] issues.  This is now a testcase for the
SSA_VAL (backedge_val) != backedge_val case I reverted here:

@@ -4207,9 +4204,7 @@ visit_phi (gimple *phi, bool *inserted,
       && !seen_non_backedge
       && TREE_CODE (backedge_val) == SSA_NAME
       && sameval == backedge_val
-      && (SSA_NAME_IS_VIRTUAL_OPERAND (backedge_val)
-         || !SSA_VISITED (backedge_val)
-         || SSA_VAL (backedge_val) != backedge_val))
+      && SSA_NAME_IS_VIRTUAL_OPERAND (backedge_val))
     /* Note this just drops to VARYING without inserting the PHI into
        the hashes.  */
     result = PHI_RESULT (phi);

ultimatively the question is whether we may actually use the SSA_VAL here.
For this testcase we made the backedge executable as we're visiting along
it compared to when we do that because we cannot trust its executable state.
Of course we'd need to track this difference somehow...

That said, reverting part of the above is going to work, but I'm fist
re-testing
disabling of pessimistic PHI backedge treatment (and hope we have a testcase
that breaks - otherwise I'll likely wait for one there...).

Reply via email to