https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71672
Martin Liška <marxin at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|WAITING |NEW --- Comment #3 from Martin Liška <marxin at gcc dot gnu.org> --- Good, using perf 4.6 works for me. However the profile is rejected here: if (total >= info->count / 2) { if (dump_file) fprintf (dump_file, " not hot anymore %ld >= %ld", (long)total, (long)info->count /2); return false; } where total == 388 and info->count == 360. IIUC the count belongs to a BB where the indirect call is triggered? If so, the bail out does not make much sense. Anyhow, commenting out the return statement, I fails dues to "no target map". Debugging find_icall_target_map function which is correctly called for p_10 (), but callsites of main is just single and equal to 'setp'. That's strange, as the call is completely inlined. Simple dump patch generates: f: a1, num_callsites: 0 num_targets: 0 f: main, num_callsites: 1 num_targets: 0 num_targets: 0 num_targets: 1 num_targets: 0 f: setp, num_callsites: 0 num_targets: 0 num_targets: 0 So it looks main contains just the callsite to 'setp', call of 'p' is missing. Would it be related to a gcov_create issue. Any verbose debug option I can use?