2018-06-05 Richard Biener <rguenther@suse.de>
commit11f5525b7905efb8b95320b2450c6135fac18cce
authorrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 5 Jun 2018 11:11:16 +0000 (5 11:11 +0000)
committerrguenth <rguenth@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 5 Jun 2018 11:11:16 +0000 (5 11:11 +0000)
treef39003bf3d25157b33457ba2117c868b0d5f5455
parent8b73d2dbf2fc2ccba527ec57e5245d1eb794b134
2018-06-05  Richard Biener  <rguenther@suse.de>

* tree-cfgcleanup.c (cleanup_control_flow_pre): For edge
removal pretend DOM info isn't available so we do not update
it and only remove edges, not dominated blocks.  Actually free
DOM info in case we removed something.  Remove unreachable blocks.
(mfb_keep_latches): Work with either DOM info or marked backedges.
(cleanup_tree_cfg_noloop): Do not remove unreachable blocks
first.  Mark backedges if DOM info isn't available.
(Re-)compute DOM info after cleanup_control_flow_pre.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@261195 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/tree-cfgcleanup.c