When insert_updated_phi_nodes_for tries to skip pruning the IDF to
blocks dominated by the nearest common dominator of the set of
definition blocks it compares against ENTRY_BLOCK but that's never
going to be the common dominator, instead it will be at most its single
successor.

Re-bootstrap and regtest running on x86_64-unknown-linux-gnu.

        * tree-into-ssa.cc (insert_updated_phi_nodes_for): Skip
        pruning when the nearest common dominator is the successor
        of ENTRY_BLOCK.
---
 gcc/tree-into-ssa.cc | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/gcc/tree-into-ssa.cc b/gcc/tree-into-ssa.cc
index 705e4119ba3..858c3840475 100644
--- a/gcc/tree-into-ssa.cc
+++ b/gcc/tree-into-ssa.cc
@@ -3262,7 +3262,7 @@ insert_updated_phi_nodes_for (tree var, bitmap_head *dfs,
             common dominator of all the definition blocks.  */
          entry = nearest_common_dominator_for_set (CDI_DOMINATORS,
                                                    db->def_blocks);
-         if (entry != ENTRY_BLOCK_PTR_FOR_FN (cfun))
+         if (entry != single_succ (ENTRY_BLOCK_PTR_FOR_FN (cfun)))
            EXECUTE_IF_SET_IN_BITMAP (idf, 0, i, bi)
              if (BASIC_BLOCK_FOR_FN (cfun, i) != entry
                  && dominated_by_p (CDI_DOMINATORS,
-- 
2.35.3

Reply via email to