This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Optimize handling of inline summaries


Hi,

On Mon, Nov 04 2019, Jan Hubicka wrote:
>> On 11/4/19 3:12 PM, Jan Hubicka wrote:
>> > Martin, do you know why this flag was introduced?
>> 
>> Hi.
>> 
>> The flag is used in IPA CP:
>> 
>> call_summary <edge_clone_summary *>
>> 
>> class edge_clone_summary
>> {
>> ...
>>   cgraph_edge *prev_clone;
>>   cgraph_edge *next_clone;
>> }
>
> I see, so it is there to collect chains of duplications. I suppose it
> makes sense even though it is bit unexpected use of summaries (I suppose
> I approved it :)

Well, it was originally a duplication hook but martin converted it to a
summary too.  it just creates a link list of edges created during IPA-CP
but these specific "summaries" live only during the IPA-CP WPA stage and
are promptly deleted afterwards so they hopefully should not pose any
issues.

>
> In this case we want to more know that something was duplicated and
> trigger creation.

I am afraid I don't understand what is "this case" in this context but
yeah, the behavior should not be normally required.

> There are other cases where we do not want to
> duplicate in all siutations (like when inline clone is created).

> I was wondering about adding duplicate_p function which will by default
> return true if source summary exists and which one can overwrite with
> different behaviour.  What do you think?
>

Well, you'll have to override it for edge_clone_summary_t :-)  But
otherwise it makes sense, I guess.

Martin


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]