So if we are about to fix this in if-conversion, we need to do both in tree & 
rtl as both ifcvt & ce passes cannot handle it. 

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. 

Bingfeng

-----Original Message-----
From: Jeff Law [mailto:l...@redhat.com] 
Sent: 22 November 2013 16:58
To: Bingfeng Mei; Andrew Pinski
Cc: gcc@gcc.gnu.org
Subject: Re: Jump threading in tree dom pass prevents if-conversion & following 
vectorization

On 11/22/13 04:03, Bingfeng Mei wrote:
> Well, in your modified example, it is still due to jump threading that produce
> code of bad control flow that cannot be if-converted and vectorized, though in
> tree-vrp pass this time.
>
> Try this
> ~/install-4.8/bin/gcc vect-ifconv-2.c  -O2 -fdump-tree-ifcvt-details 
> -ftree-vectorize  -save-temps -fno-tree-vrp
>
> The code can be vectorized.
>
> Grep "threading" in gcc, it seems that dom and vrp passes are two places that 
> apply
> jump threading. Any other place? I think we need an target hook to control it.
No no.  The right thing to do is fix if-conversion.

jeff


Reply via email to