]> git.ipfire.org Git - thirdparty/gcc.git/commit
Fix and speedup IDF pruning by dominator
authorRichard Biener <rguenther@suse.de>
Thu, 4 Apr 2024 13:18:06 +0000 (15:18 +0200)
committerRichard Biener <rguenther@suse.de>
Wed, 8 May 2024 08:29:33 +0000 (10:29 +0200)
commit245a6d478aba6499d1f649e4d35df1e858c5967c
treec4bc0893d6d3bfee61f82302c3d60649973b609e
parent9adec2d91e62a479474ae79df5b455fd4b8463ba
Fix and speedup IDF pruning by dominator

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.  In fact if it ever were the code
fails to copy IDF to PRUNED_IDF, leading to wrong code.

The following fixes that by avoiding the copy and pruning from the
IDF in-place as well as using the more approprate check against
the single successor of the ENTRY_BLOCK.

* tree-into-ssa.cc (insert_updated_phi_nodes_for): Skip
pruning when the nearest common dominator is the successor
of ENTRY_BLOCK.  Do not copy IDF but prune it directly.
gcc/tree-into-ssa.cc