> -----Original Message-----
> From: Prathamesh Kulkarni <[email protected]>
> Sent: 23 December 2025 16:16
> To: [email protected]; Jan Hubicka <[email protected]>
> Subject: [RFC][Enable time profile function reordering with AutoFDO]
> Introduce pass ipa_adjust_tp_first_run for handling profiled clones
>
> External email: Use caution opening links or attachments
>
>
> Hi Honza,
> The attached patch is split from the original patch and introduces new
> pass ipa_adjust_tp_first_run for setting tp_first_run for clones that
> are materialized after auto-profile pass.
>
> I tried using function_summary instead of custom std::map<const char
> *, int, string_compare> clone_timestamp_map, but am running into
> following issue:
> AFAIU, function_summary works as a map from cgraph_node to the custom
> pass summary. But in this case, we want summary <name, tp_first_run>
> for node's profiled clones (and not node itself), which would later
> get materialized during WPA and do not exist during generate_summary
> stage of the pass.
>
> I suppose we could maintain per each node summaries of all it's
> profiled clones (name, tp_first_run) during generate_summary stage,
> and during WPA stage of pass, fetch the correct clone from it's name
> and set it's tp_first_run ?
> Altho if the original node gets removed from symtab during IPA opts, I
> am not sure if we could access it's clones info from function_summary
> in the pass ?
>
> In the attached patch, I have left clone_timestamp_map as-is.
> Could you please suggest how to proceed ?
>
> On average with this patch, I am seeing a ~2.5% uplift on top of base
> patch (and the explicit partitioner based on tp_first_run).
Hi,
ping: https://gcc.gnu.org/pipermail/gcc-patches/2025-December/704417.html
Thanks,
Prathamesh
>
> Signed-off-by: Prathamesh Kulkarni <[email protected]>
>
> Thanks,
> Prathamesh