On Thu, Mar 13, 2014 at 1:58 PM, Paulo Matos <pma...@broadcom.com> wrote: > >> -----Original Message----- >> From: gcc-ow...@gcc.gnu.org [mailto:gcc-ow...@gcc.gnu.org] On Behalf Of Paulo >> Matos >> Sent: 13 March 2014 11:21 >> To: Richard Biener >> Cc: gcc@gcc.gnu.org >> Subject: RE: dom requires PROP_loops >> >> >> PROP_loops is enabled from tree loopinit to rtl loop_done2 and with this >> property >> enabled cfg_cleanup doesn't remove empty latches allowing GCC to move >> instructions into the latch in the meantime. >> > > Let me clarify this statement. With PROP_loops enabled, > loop_optimizer_finalize doesn't free loops and current_loops is non-null. > This has an array of consequences, one of them being that loop latches are > not removed. So, which PROP_loops is the reason for the non-removal of empty > loop latches, removal actually depends on the value of current_loops.
Probably RTL cfgcleaup needs the same treatment as GIMPLE cfgcleanup then - allow removal if loop properties allows it. Richard. > -- > Paulo Matos