Fix guard for IDF pruning by dominator

Message ID 20240507133646.9B7A73858288@sourceware.org
State New
Headers
Series Fix guard for IDF pruning by dominator |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_gcc_build--master-arm fail Testing failed
linaro-tcwg-bot/tcwg_gcc_build--master-aarch64 fail Testing failed

Commit Message

Richard Biener May 7, 2024, 1:36 p.m. UTC
  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(-)
  

Patch

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,