https://gcc.gnu.org/g:5e718a7a789b39ef877e0d66c7a6a85b54eb112f

commit r15-5711-g5e718a7a789b39ef877e0d66c7a6a85b54eb112f
Author: Andi Kleen <a...@gcc.gnu.org>
Date:   Thu Oct 31 10:26:16 2024 -0700

    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  <ja...@redhat.com>
                Andrew Pinski  <quic_apin...@quicinc.com>
                Andi Kleen  <a...@gcc.gnu.org>
    gcc/ChangeLog:
    
            PR bootstrap/117350
            * tree.cc (need_assembler_name_p): Keep assembler name
            for abstract declarations when autofdo is used.

Diff:
---
 gcc/tree.cc | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/gcc/tree.cc b/gcc/tree.cc
index 125f38b1cfab..833c3a9cc89d 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

Reply via email to