This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Jump threading in tree dom pass prevents if-conversion & following vectorization
- From: Steven Bosscher <stevenb dot gcc at gmail dot com>
- To: Jeff Law <law at redhat dot com>
- Cc: Bingfeng Mei <bmei at broadcom dot com>, Andrew Pinski <pinskia at gmail dot com>, Richard Biener <richard dot guenther at gmail dot com>, "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Date: Fri, 22 Nov 2013 20:55:45 +0100
- Subject: Re: Jump threading in tree dom pass prevents if-conversion & following vectorization
- Authentication-results: sourceware.org; auth=none
- References: <B71DF1153024A14EABB94E39368E44A60420FE4A at SJEXCHMB13 dot corp dot ad dot broadcom dot com> <CA+=Sn1=1-k_0wBwMi=xhHERr+MBwgTr=8DnqZn_xQLXEn4wNoA at mail dot gmail dot com> <B71DF1153024A14EABB94E39368E44A604210476 at SJEXCHMB13 dot corp dot ad dot broadcom dot com> <528F8D13 dot 4070703 at redhat dot com> <B71DF1153024A14EABB94E39368E44A604210907 at SJEXCHMB13 dot corp dot ad dot broadcom dot com> <528F918A dot 4030004 at redhat dot com>
On Fri, Nov 22, 2013 at 6:16 PM, Jeff Law wrote:
>> I am still not convinced jump threading is good for target with predicated
>> execution (assuming no fix for if-conversion). I am doing benchmarking on
>> our target now.
Try disabling only jump threading of back edges, loop latches, and
jump threading in small loops.
Any "jump forwarding" is almost always a win.
> I'd be quite surprised if your tests show that it's not beneficial.
>
> In simplest terms jump threading identifies conditional branches which can
> have their destination statically determined based on the path taken to the
> static branch.
Still, optimizing away such conditional branches is not automatically a win.
There have always been issues with tree-ssa DOM doing jump-threading
so aggressively that other passes couldn't handle the resulting
control flow anymore, especially jump threading around/near loops.
Ciao!
Steven