On Tue, May 10, 2016 at 3:00 PM, Christophe Lyon
<christophe.l...@linaro.org> wrote:
> On 3 May 2016 at 11:07, Bin.Cheng <amker.ch...@gmail.com> wrote:
>> On Mon, May 2, 2016 at 10:02 AM, Richard Biener
>> <richard.guent...@gmail.com> wrote:
>>> On Fri, Apr 29, 2016 at 5:51 PM, Bin.Cheng <amker.ch...@gmail.com> wrote:
>>>> On Thu, Apr 28, 2016 at 10:18 AM, Richard Biener
>>>> <richard.guent...@gmail.com> wrote:
>>>>> On Wed, Apr 27, 2016 at 5:49 PM, Bin Cheng <bin.ch...@arm.com> wrote:
>>>>>> Hi,
>>>>>> Currently tree if-conversion only supports PHIs with no more than two 
>>>>>> arguments unless the loop is marked with "simd pragma".  This patch 
>>>>>> makes such PHIs supported unconditionally if they have no more than 
>>>>>> MAX_PHI_ARG_NUM arguments, thus cases like PR56541 can be fixed.  Note 
>>>>>> because a chain of "?:" operators are needed to compute mult-arg PHI, 
>>>>>> this patch records the case and versions loop so that vectorizer can 
>>>>>> fall back to the original loop if if-conversion+vectorization isn't 
>>>>>> beneficial.  Ideally, cost computation in vectorizer should be improved 
>>>>>> to measure benefit against the original loop, rather than if-converted 
>>>>>> loop.  So far MAX_PHI_ARG_NUM is set to (4) because cases with more 
>>>>>> arguments are rare and not likely beneficial.
>>>>>>
>>>>>> Apart from above change, the patch also makes changes like: only split 
>>>>>> critical edge when we have to; cleanups code logic in 
>>>>>> if_convertible_loop_p about aggressive_if_conv.
>>>>>>
>>>>>> Bootstrap and test on x86_64 and AArch64, is it OK?
>>>>>
>>>>> Can you make this magic number a --param please?  Otherwise ok.
>>>> Hi,
>>>> Here is the updated patch.  I also added a vectorization test case
>>>> since PR56541 was reported against it.
>>>> Bootstrap & test on x86_64, is it OK?
>>>
>>> +/* { dg-options "-O3 -fdump-tree-ifcvt-stats" { target *-*-* } } */
>>>
>>> you can omit { target *-*-* } here.
>>>
>>> Ok with that change.
>>>
>> Patch applied as suggested at r235808.
>>
>
> Hi Bin,
>
> I'm seeing:
> FAIL: gcc.dg/vect/pr56541.c -flto -ffat-lto-objects
> scan-tree-dump-times vect "vectorized 1 loops" 1
> FAIL: gcc.dg/vect/pr56541.c scan-tree-dump-times vect "vectorized 1 loops" 1
Hi,
Thanks for reporting this, I remembered it passes on AArch64 when the
patch is tested.  I will look into it.

Thanks,
bin
>
> on arm and aarch64 targets.
>
> Didn't you see this in your aarch64 bootstrap?
>
> Christophe.
>
>
>> Thanks,
>> bin

Reply via email to