On 5/30/19 12:57 AM, Jiufu Guo wrote:
> Richard Biener <rguent...@suse.de> writes:
> 
>> On May 29, 2019 10:21:46 PM GMT+02:00, Jeff Law <l...@redhat.com> wrote:
>>> On 5/24/19 6:45 AM, Richard Biener wrote:
>>> [ Aggressive snipping ]
>>>
>>>> As said in my first review I'd just check whether for the
>>>> edge we want to thread through the definition comes from a CMP.
>>>> Suppose you have
>>>>
>>>>  # val_1 = PHI <a_2, b_3, c_4>
>>>>  if (val_1 != 0)
>>>>
>>>> and only one edge has a b_3 = d_5 != 0 condition it's still
>>>> worth tail-duplicating the if block.
>>> Agreed.  The cost of tail duplicating here is so small we should be
>>> doing it highly aggressively.  About the only case where we might not
>>> want to would be if we're optimizing for size rather than speed.  That
>>> case isn't clearly a win either way.
>>
>> Even there the PHI likely causes edge copies to be inserted. So I
>> wouldn't care for the moment. The proper check would be !
>> Optimize_edge_for_size_p (e).
> For most of this kind of case where the bb contains just one conditional
> jump stmt, it may not increase the size especially for there are
> combinings in follow passes -- it may save size ;)
My point was it's not as clear cut.  Regardless I think we've gone
pretty deep into the weeds.  I think we could easily handle that case as
a follow-up.

jeff

Reply via email to