This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: dom requires PROP_loops
- From: Richard Biener <richard dot guenther at gmail dot com>
- To: Paulo Matos <pmatos at broadcom dot com>
- Cc: "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Date: Thu, 13 Mar 2014 14:24:11 +0100
- Subject: Re: dom requires PROP_loops
- Authentication-results: sourceware.org; auth=none
- References: <19EB96622A777C4AB91610E763265F4642D9F1 at SJEXCHMB14 dot corp dot ad dot broadcom dot com> <CAFiYyc0=pg8=017-gmiXeXFWvexrt7mhruuVrD5N-kJGP9ez4g at mail dot gmail dot com> <19EB96622A777C4AB91610E763265F4642F387 at SJEXCHMB14 dot corp dot ad dot broadcom dot com> <19EB96622A777C4AB91610E763265F4642F4E4 at SJEXCHMB14 dot corp dot ad dot broadcom dot com>
On Thu, Mar 13, 2014 at 1:58 PM, Paulo Matos <pmatos@broadcom.com> wrote:
>
>> -----Original Message-----
>> From: gcc-owner@gcc.gnu.org [mailto:gcc-owner@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