optinfo-emit-json.cc: don't call get_fnname_from_decl (PR middle-end/89725)
authorDavid Malcolm <dmalcolm@redhat.com>
Thu, 28 Mar 2019 14:40:56 +0000 (14:40 +0000)
committerDavid Malcolm <dmalcolm@gcc.gnu.org>
Thu, 28 Mar 2019 14:40:56 +0000 (14:40 +0000)
optrecord_json_writer::optinfo_to_json can in theory be called from any
optimization pass, but currently uses get_fnname_from_decl, which
is RTL-specific.

In that PR, Jakub suggested using either DECL_ASSEMBLER_NAME or the
"printable name" (via current_function_name).

This patch makes it use DECL_ASSEMBLER_NAME.

gcc/ChangeLog:
PR middle-end/89725
* optinfo-emit-json.cc (optrecord_json_writer::optinfo_to_json):
Use DECL_ASSEMBLER_NAME rather than get_fnname_from_decl.

From-SVN: r269994

gcc/ChangeLog
gcc/optinfo-emit-json.cc

index 50ed3df..741639d 100644 (file)
@@ -1,3 +1,9 @@
+2019-03-28  David Malcolm  <dmalcolm@redhat.com>
+
+       PR middle-end/89725
+       * optinfo-emit-json.cc (optrecord_json_writer::optinfo_to_json):
+       Use DECL_ASSEMBLER_NAME rather than get_fnname_from_decl.
+
 2019-03-28  Jakub Jelinek  <jakub@redhat.com>
 
        * regcprop.c (copyprop_hardreg_forward_1): Remove redundant INSN_P
index 814446b..1cfcdfe 100644 (file)
@@ -411,7 +411,8 @@ optrecord_json_writer::optinfo_to_json (const optinfo *optinfo)
 
   if (current_function_decl)
     {
-      const char *fnname = get_fnname_from_decl (current_function_decl);
+      const char *fnname
+       = IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (current_function_decl));
       obj->set ("function", new json::string (fnname));
     }