final.c (final): Use symbol name as function name for profiling.
authorJan Hubicka <jh@suse.cz>
Thu, 3 Oct 2002 21:22:12 +0000 (23:22 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Thu, 3 Oct 2002 21:22:12 +0000 (21:22 +0000)
* final.c (final): Use symbol name as function name for profiling.
* profile.c (get_exec_counts): Likewise.
(branch_prob): Likewise.

From-SVN: r57790

gcc/ChangeLog
gcc/final.c
gcc/profile.c

index fa51788d6d31eb809360df76a3a00e0e9387ce68..636128735108c2c7036f93a765531f5ccaac08c7 100644 (file)
@@ -1,3 +1,9 @@
+Thu Oct  3 23:20:58 CEST 2002  Jan Hubicka  <jh@suse.cz>
+
+       * final.c (final): Use symbol name as function name for profiling.
+       * profile.c (get_exec_counts): Likewise.
+       (branch_prob): Likewise.
+
 2002-10-03  Jakub Jelinek  <jakub@redhat.com>
 
        * longlong.h (__udiv_qrnnd): Remove PARAMS from prototype.
index 0ff3c3a249c67f5cb2097e32b83affe1c5e4fd46..2f5c8239fa18ac72daa3d9c6ff0fd7a81d0e7611 100644 (file)
@@ -1915,7 +1915,8 @@ final (first, file, optimize, prescan)
       functions_tail = &new_item->next;
 
       new_item->next = 0;
-      new_item->name = xstrdup (current_function_name);
+      new_item->name = xstrdup (IDENTIFIER_POINTER
+                                (DECL_ASSEMBLER_NAME (current_function_decl)));
       new_item->cfg_checksum = profile_info.current_function_cfg_checksum;
       new_item->count_edges = profile_info.count_edges_instrumented_now;
     }
index 1ee4735140926e69fcc31257772e29a35e8a4006..60327947c2ee3bd09f683359557c56b7239e31d4 100644 (file)
@@ -260,6 +260,8 @@ get_exec_counts ()
   char *function_name_buffer;
   int function_name_buffer_len;
   gcov_type max_counter_in_run;
+  const char *name = IDENTIFIER_POINTER
+                     (DECL_ASSEMBLER_NAME (current_function_decl));
 
   profile_info.max_counter_in_program = 0;
   profile_info.count_profiles_merged = 0;
@@ -282,7 +284,7 @@ get_exec_counts ()
 
   profile = xmalloc (sizeof (gcov_type) * num_edges);
   rewind (da_file);
-  function_name_buffer_len = strlen (current_function_name) + 1;
+  function_name_buffer_len = strlen (name) + 1;
   function_name_buffer = xmalloc (function_name_buffer_len + 1);
 
   for (i = 0; i < num_edges; i++)
@@ -349,7 +351,7 @@ get_exec_counts ()
              break;
            }
 
-         if (strcmp (function_name_buffer, current_function_name) != 0)
+         if (strcmp (function_name_buffer, name) != 0)
            {
              /* skip */
              if (fseek (da_file, arc_count * 8, SEEK_CUR) < 0)
@@ -772,6 +774,8 @@ branch_prob ()
   int i;
   int num_edges, ignored_edges;
   struct edge_list *el;
+  const char *name = IDENTIFIER_POINTER
+                      (DECL_ASSEMBLER_NAME (current_function_decl));
 
   profile_info.current_function_cfg_checksum = compute_checksum ();
 
@@ -781,7 +785,7 @@ branch_prob ()
 
   /* Start of a function.  */
   if (flag_test_coverage)
-    output_gcov_string (current_function_name, (long) -2);
+    output_gcov_string (name, (long) -2);
 
   total_num_times_called++;
 
@@ -995,8 +999,7 @@ branch_prob ()
     {
       int flag_bits;
 
-      __write_gcov_string (current_function_name,
-                          strlen (current_function_name), bbg_file, -1);
+      __write_gcov_string (name, strlen (name), bbg_file, -1);
 
       /* write checksum.  */
       __write_long (profile_info.current_function_cfg_checksum, bbg_file, 4);