> Hello,
>    there are dumps for Inkscape, it looks very well. There are few of
> functions that look like this (wpa cgraph):
> 
> _ZL13resync_activeP19_EgeSelectOneActionii/2604322 (resync_active)
> @0x7f84af42cea0
>   Type: function definition analyzed
>   Visibility: prevailing_def_ironly
>   References:
>   Referring:
>   Read from file: libinkscape.a
>   Availability: local
>   First run: 4422
>   Function flags: executed 47x local
>   Called by: ege_select_one_action_set_active_text/2604300 (0.34 per
> call) (can throw external)
> _ZL21commit_pending_changeP19_EgeSelectOneAction/2604327 (0.16 per
> call) (can throw external)
> _ZL34ege_select_one_action_set_propertyP8_GObjectjPK7_GValueP11_GParamSpec/2604316
> (47x) (0.16 per call) (can throw external)
>   Calls: _ZL13resync_activeP19_EgeSelectOneActionii.part.0/2604456
> (10x) (0.21 per call) (can throw external)
> 
> _ZL13resync_activeP19_EgeSelectOneActionii.part.0/2604456
> (_ZL13resync_activeP19_EgeSelectOneActionii.part.0) @0x7f84af42cd68
>   Type: function definition analyzed
>   Visibility: artificial
>   References: _ZL7signals/2604291 (read)
>   Referring:
>   Read from file: libinkscape.a
>   Availability: local
>   First run: 0
>   Function flags: executed 10x local
>   Called by: _ZL13resync_activeP19_EgeSelectOneActionii/2604322 (10x)
> (0.21 per call) (can throw external)
> 
> First function has a profile (position is correct according to
> valgrind) and second not. Both of them comes from the same object
> file. The problem is that the second one is called according to
> valgrind. What does .part.X means, is it a part of function that was
> separated to a different function? Is there any was these two profiles
> could be merged?

.part.X are functions created by function splitting.  I assume we want to modify
ipa-split.c as follows:
Index: ipa-split.c
===================================================================
--- ipa-split.c (revision 205531)
+++ ipa-split.c (working copy)
@@ -1233,6 +1233,7 @@
                                     !split_part_return_p,
                                     split_point->split_bbs,
                                     split_point->entry_bb, "part");
+  node->tp_first_run = cur_node->tp_first_run + 1;
   /* For usual cloning it is enough to clear builtin only when signature
      changes.  For partial inlining we however can not expect the part
      of builtin implementation to have same semantic as the whole.  */

Can you, please, send me the -flto systemtaps for gimp and/or inkscape so we 
can decide
on the patch? We should enable it earlier in stage3 rather than later.

Honza

Reply via email to