aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/testsuite/std
diff options
context:
space:
mode:
authorJan Hubicka <hubicka@ucw.cz>2025-06-27 16:10:31 +0200
committerJan Hubicka <hubicka@ucw.cz>2025-06-27 16:18:53 +0200
commitad18f7f88aee15b3f15aa74483ca2ebdc89e18cb (patch)
tree0bc78493993036550f40478541f5672cd0211301 /libstdc++-v3/testsuite/std
parent49d58d8da2281ec66c376ca998d29652e417f4cd (diff)
downloadgcc-ad18f7f88aee15b3f15aa74483ca2ebdc89e18cb.zip
gcc-ad18f7f88aee15b3f15aa74483ca2ebdc89e18cb.tar.gz
gcc-ad18f7f88aee15b3f15aa74483ca2ebdc89e18cb.tar.bz2
Fix afdo profiles for functions that was not early-inlined
This patch should finish the oflining infrastructure by offlining (prior AFDO annotation) all inline function instances that was not early inlined. This is mostly the case of recursive inlining or when -fno-auto-profile-inlining is used which sould now produce comparable code. I also cleaned up offlining of self-recursive functions which now happens through the worklist and reduces problem with recursive ivocation of the funciton merging modifying datastructures at unexpected places. gcc/ChangeLog: * auto-profile.cc (function_instance::set_name, function_instance::set_realized, function_instnace::realized_p, function_instance::set_in_worklist, function_instance::clear_in_worklist, function_instance::in_worklist_p): New member functions. (function_instance::in_worklist, function_instance::realized_): new. (get_relative_location_for_locus): Break out from .... (get_relative_location_for_stmt): ... here. (function_instance::~function_instance): Sanity check that removed function is not in worklist. (function_instance::merge): Do not offline realized instances. (function_instance::offline): Make private; add duplicate functions to worklist rather then merging immediately. (function_instance::offline_if_in_set): Cleanup. (function_instance::remove_external_functions): Likewise. (function_instance::offline_if_not_realized): New member function. (autofdo_source_profile::offline_external_functions): Handle delayed functions. (autofdo_source_profile::offline_unrealized_inlines): New member function. (walk_block): New function. (mark_realized_functions): New function. (afdo_annotate_cfg): Fix dump. (auto_profile): Mark realized functions and offline rest; do not compute fn summary. gcc/testsuite/ChangeLog: * gcc.dg/tree-prof/afdo-crossmodule-1.c: Update template.
Diffstat (limited to 'libstdc++-v3/testsuite/std')
0 files changed, 0 insertions, 0 deletions