On Fri, Sep 15, 2017 at 3:04 PM, Bin.Cheng <amker.ch...@gmail.com> wrote:
> On Fri, Sep 15, 2017 at 12:49 PM, Richard Biener
> <richard.guent...@gmail.com> wrote:
>> On Thu, Sep 14, 2017 at 5:02 PM, Bin Cheng <bin.ch...@arm.com> wrote:
>>> Hi,
>>> Current pcom implementation rewrites into lcssa form after all loops are 
>>> transformed, this is
>>> not enough because unrolling of later loop checks lcssa form in function 
>>> tree_transform_and_unroll_loop.
>>> This simple patch rewrites loop into lcssa form if store-store chain is 
>>> handled.  I think it doesn't
>>> affect compilation time since rewrite_into_loop_closed_ssa_1 is only called 
>>> for store-store chain
>>> transformation and only the transformed loop is rewritten.
>>
>> Well, it may look like only the transformed loop is rewritten -- yes,
>> it is, but rewrite_into_loop_closed_ssa
>> calls update_ssa () which operates on the whole function.
> I see.
>>
>> So I'd rather _not_ do this.
>>
>> Is there a real problem or is it just the overly aggressive checking
>> done?  IMHO we should remove
> In this case, it's the check itself.
>> the checking or pass in a param whether to skip the checking.  Or even
>> better, restrict the
>> checking to those loops trans_form_and_unroll actually touches.
> Yes, will see if we can check loops only related to trans_form_and_unroll.

That would be very welcome -- it's really useful to be able to assert you
didn't break LCSSA when transforming a single loop (from our generic
infrastructure routines).

Richard.

> Thanks,
> bin
>>
>> Richard.
>>
>>> Bootstrap and test ongoing on x86_64.  is it OK if no failures?
>>>
>>> Thanks,
>>> bin
>>> 2017-09-14  Bin Cheng  <bin.ch...@arm.com>
>>>
>>>         PR tree-optimization/82163
>>>         * tree-predcom.c (tree_predictive_commoning_loop): Rewrite into
>>>         loop closed ssa instantly.  Return boolean true if loop is unrolled.
>>>         (tree_predictive_commoning): Return TODO_cleanup_cfg if loop is
>>>         unrolled.
>>>
>>> gcc/testsuite
>>> 2017-09-14  Bin Cheng  <bin.ch...@arm.com>
>>>
>>>         PR tree-optimization/82163
>>>         * gcc.dg/tree-ssa/pr82163.c: New test.

Reply via email to