[GOOGLE] Remove unnecessary functions in AutoFDO

Dehao Chen dehao@google.com
Wed Jul 17 21:26:00 GMT 2013


This patch removes unnecessary functions in AutoFDO.

Bootstrapped and passed regression/benchmark tests.

OK for google-4_8 branch?

Thanks,
Dehao
-------------- next part --------------
Index: gcc/auto-profile.c
===================================================================
--- gcc/auto-profile.c	(revision 200957)
+++ gcc/auto-profile.c	(working copy)
@@ -638,26 +638,6 @@ get_inline_stack_size_by_stmt (gimple stmt)
   return size;
 }
 
-/* Return the size of the inline stack of the EDGE. All inlined callsites
-   along he inline chain are recorded.  */
-
-static int
-get_inline_stack_size_by_edge (struct cgraph_edge *edge)
-{
-  struct cgraph_edge *e;
-  int size = 0;
-  for (e= edge; e; e = e->caller->callers)
-    {
-      gimple stmt = e->call_stmt;
-      if (!stmt)
-	break;
-      size += get_inline_stack_size_by_stmt (stmt);
-      if (!e->caller->global.inlined_to)
-	break;
-    }
-  return size;
-}
-
 /* Return the function decl of a given lexical BLOCK.  */
 
 static tree
@@ -728,29 +708,6 @@ get_inline_stack_by_stmt (gimple stmt, tree decl,
   return idx;
 }
 
-/* Store the inline stack of EDGE to POS_STACK, return the size of the
-   stack. All inlined callsites along the inline stack are recorded.  */
-
-static int
-get_inline_stack_by_edge (struct cgraph_edge *edge,
-			  struct gcov_callsite_pos *pos_stack)
-{
-  struct cgraph_edge *e;
-  int size = 0;
-
-  for (e = edge; e; e = e->caller->callers)
-    {
-      gimple stmt = e->call_stmt;
-      if (!stmt)
-	break;
-      size += get_inline_stack_by_stmt (stmt, e->caller->symbol.decl,
-					pos_stack + size, false);
-      if (!e->caller->global.inlined_to)
-	break;      
-    }
-  return size;
-}
-
 /* Read sample count info of the function with DECL, and save them
    to ENTRY_COUNT and TOTAL_COUNT respectively.  */
 
@@ -897,14 +854,15 @@ get_callsite_count (struct cgraph_edge *edge, gcov
   gcov_type num_inst;
   const char *callee_name =
       IDENTIFIER_POINTER (DECL_ASSEMBLER_NAME (edge->callee->symbol.decl));
-  int size = get_inline_stack_size_by_edge (edge);
+  int size = get_inline_stack_size_by_stmt (edge->call_stmt);
 
   if (size == 0)
     return 0;
   pos_stack = (struct gcov_callsite_pos *)
       alloca (sizeof (struct gcov_callsite_pos) * size);
 
-  get_inline_stack_by_edge (edge, pos_stack);
+  get_inline_stack_by_stmt (edge->call_stmt, edge->caller->symbol.decl,
+			    pos_stack, false);
 
   return get_stack_count (pos_stack, callee_name,
 			  size, count, max_count, &num_inst, NULL, NULL);
@@ -1004,9 +962,9 @@ read_profile (void)
 
   if (gcov_read_unsigned () != GCOV_VERSION)
     {
-;/*      inform (0, "Version number does not mathch.");
+      inform (0, "Version number does not mathch.");
       flag_auto_profile = 0;
-      return;*/
+      return;
     }
 
   /* Skip the empty integer.  */


More information about the Gcc-patches mailing list