aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndi Kleen <ak@gcc.gnu.org>2024-10-31 10:26:16 -0700
committerAndi Kleen <ak@gcc.gnu.org>2024-11-26 19:54:33 -0800
commit5e718a7a789b39ef877e0d66c7a6a85b54eb112f (patch)
treee999ac9813f9d662be762857f9c7da8e21742690
parent74cee438f2001d718f8d73639ed8aeec2c1c0ce4 (diff)
downloadgcc-5e718a7a789b39ef877e0d66c7a6a85b54eb112f.zip
gcc-5e718a7a789b39ef877e0d66c7a6a85b54eb112f.tar.gz
gcc-5e718a7a789b39ef877e0d66c7a6a85b54eb112f.tar.bz2
PR117350: Keep assembler name for abstract decls for autofdo
autofdo looks up inline stacks and tries to match them with the profile data using their symbol name. Make sure all decls that can be in a inline stack have a valid assembler name. This fixes a bootstrap problem with autoprofiledbootstrap and LTO. 2024-10-30 Jason Merrill <jason@redhat.com> Andrew Pinski <quic_apinski@quicinc.com> Andi Kleen <ak@gcc.gnu.org> gcc/ChangeLog: PR bootstrap/117350 * tree.cc (need_assembler_name_p): Keep assembler name for abstract declarations when autofdo is used.
-rw-r--r--gcc/tree.cc5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/tree.cc b/gcc/tree.cc
index 125f38b..833c3a9 100644
--- a/gcc/tree.cc
+++ b/gcc/tree.cc
@@ -798,8 +798,9 @@ need_assembler_name_p (tree decl)
|| DECL_ASSEMBLER_NAME_SET_P (decl))
return false;
- /* Abstract decls do not need an assembler name. */
- if (DECL_ABSTRACT_P (decl))
+ /* Abstract decls do not need an assembler name, except they
+ can be looked up by autofdo. */
+ if (DECL_ABSTRACT_P (decl) && !flag_auto_profile)
return false;
/* For VAR_DECLs, only static, public and external symbols need an