From: "hongtao.liu" <[email protected]>
Function name in afdo_string_table is step3d_t_tile.
but DECL_ASSEMBLER_NAME (edge->callee->decl))) gets
__step3d_t_mod_MOD_step3d_t_tile, Looks like the prefix is not in the
debug string table, so let's also check directly for
afdo_string_table->get_index_by_decl (edge->callee->decl).
Tested with autofdo enabled, the issue is fixed by the patch.
Bootstrapped and regtested on x86_64-pc-linux-gnu{-m32,}.
Ok for trunk?
gcc/ChangeLog:
PR gcov-profile/118508
* auto-profile.cc
(autofdo_source_profile::get_callsite_total_count): Fix name
mismatch for fortran.
---
gcc/auto-profile.cc | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/gcc/auto-profile.cc b/gcc/auto-profile.cc
index aa4d1634f01..2d2d4a428f2 100644
--- a/gcc/auto-profile.cc
+++ b/gcc/auto-profile.cc
@@ -837,8 +837,10 @@ autofdo_source_profile::get_callsite_total_count (
function_instance *s = get_function_instance_by_inline_stack (stack);
if (s == NULL
- || afdo_string_table->get_index (IDENTIFIER_POINTER (
- DECL_ASSEMBLER_NAME (edge->callee->decl))) != s->name ())
+ || (afdo_string_table->get_index (IDENTIFIER_POINTER (
+ DECL_ASSEMBLER_NAME (edge->callee->decl))) != s->name ()
+ && afdo_string_table->get_index_by_decl (edge->callee->decl)
+ != s->name()))
return 0;
return s->total_count ();
--
2.34.1