diff options
author | Andi Kleen <ak@gcc.gnu.org> | 2024-10-31 10:26:16 -0700 |
---|---|---|
committer | Andi Kleen <ak@gcc.gnu.org> | 2024-11-26 19:54:33 -0800 |
commit | 5e718a7a789b39ef877e0d66c7a6a85b54eb112f (patch) | |
tree | e999ac9813f9d662be762857f9c7da8e21742690 | |
parent | 74cee438f2001d718f8d73639ed8aeec2c1c0ce4 (diff) | |
download | gcc-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.cc | 5 |
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 |