This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Useless statement in loop latch looks like performance regression
- From: Richard Biener <richard dot guenther at gmail dot com>
- To: Jeff Law <law at redhat dot com>,Paulo Matos <pmatos at broadcom dot com>
- Cc: "gcc at gcc dot gnu dot org" <gcc at gcc dot gnu dot org>
- Date: Fri, 10 Jan 2014 20:23:07 +0100
- Subject: Re: Useless statement in loop latch looks like performance regression
- Authentication-results: sourceware.org; auth=none
- References: <19EB96622A777C4AB91610E763265F463E87AF at SJEXCHMB14 dot corp dot ad dot broadcom dot com> <CAFiYyc0LroJZV=xae73_zdCrthqwfkz2F8gOShrZLQ_HpVJs8g at mail dot gmail dot com> <19EB96622A777C4AB91610E763265F463E8A7C at SJEXCHMB14 dot corp dot ad dot broadcom dot com> <52D02AF3 dot 4030407 at redhat dot com>
Jeff Law <law@redhat.com> wrote:
>On 01/10/14 10:03, Paulo Matos wrote:
>>
>>
>> Paulo Matos
>>
>>
>>> -----Original Message-----
>>> From: Richard Biener [mailto:richard.guenther@gmail.com]
>>> Sent: 10 January 2014 13:25
>>> To: Paulo Matos
>>> Cc: gcc@gcc.gnu.org
>>> Subject: Re: Useless statement in loop latch looks like performance
>regression
>>>
>>> Most likely changes to SSA coalescing at out-of-SSA time like
>>>
>>> 2013-09-26 Richard Biener <rguenther@suse.de>
>>>
>>> * tree-ssa-live.c (var_map_base_init): Handle SSA names
>with
>>> DECL_IGNORED_P base VAR_DECLs like anonymous SSA names.
>>> (loe_visit_block): Use gcc_checking_assert.
>>> * tree-ssa-coalesce.c (create_outofssa_var_map): Use
>>> gimple_assign_ssa_name_copy_p.
>>> (gimple_can_coalesce_p): Adjust according to the
>var_map_base_init
>>> change.
>>>
>>> and an earlier patch by Jeff Law.
>>
>> You're right, I tracked it down to this one:
>>
>> Author: law <law@138bc75d-0d04-0410-961f-82ee72b054a4>
>> Date: Fri Jun 14 18:52:32 2013 +0000
>>
>> * gimple.h (gimple_can_coalesce_p): Prototype.
>> * tree-ssa-coalesce.c (gimple_can_coalesce_p): New function.
>> (create_outofssa_var_map, coalesce_partitions): Use it.
>> * tree-ssa-uncprop.c (uncprop_into_successor_phis):
>Similarly.
>> * tree-ssa-live.c (var_map_base_init): Use TYPE_CANONICAL
>> if it's available.
>>
>> * gcc.dg/tree-ssa/coalesce-1.c: New test.
>More aggressive coalescing can, in some cases, be detrimental. That's
>inherent in coalescing. I'm open to suggestions on heuristics to
>improve things.
He was looking for the patch that improved things, so nothing to fix for you ;-)
Richard.
>jeff