Re: [PATCH, autofdo] Some code cleanup

2015-01-17 Thread Yangfei (Felix)
Hi,

I updated the patch adding one ChangeLog entry.
OK for the trunk?  Thanks.


Index: gcc/ChangeLog
===
--- gcc/ChangeLog   (revision 219297)
+++ gcc/ChangeLog   (working copy)
@@ -1,3 +1,12 @@
+2015-01-17  Felix Yang  felix.y...@huawei.com
+
+   * auto-profile.c (afdo_find_equiv_class): Remove unnecessary code.
+   (autofdo_source_profile::get_callsite_total_count,
+   function_instance::get_function_instance_by_decl,
+   string_table::get_index, string_table::get_index_by_decl,
+   afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
+   Fix comment typos and formatting.
+
 2015-01-06  Sandra Loosemore  san...@codesourcery.com
 
* doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
Index: gcc/auto-profile.c
===
--- gcc/auto-profile.c  (revision 219297)
+++ gcc/auto-profile.c  (working copy)
@@ -96,7 +96,7 @@ along with GCC; see the file COPYING3.  If not see
  standalone symbol, or a clone of a function that is inlined into another
  function.
 
-   Phase 2: Early inline + valur profile transformation.
+   Phase 2: Early inline + value profile transformation.
  Early inline uses autofdo_source_profile to find if a callsite is:
 * inlined in the profiled binary.
 * callee body is hot in the profiling run.
@@ -361,7 +361,7 @@ get_original_name (const char *name)
 
 /* Return the combined location, which is a 32bit integer in which
higher 16 bits stores the line offset of LOC to the start lineno
-   of DECL, The lower 16 bits stores the discrimnator.  */
+   of DECL, The lower 16 bits stores the discriminator.  */
 
 static unsigned
 get_combined_location (location_t loc, tree decl)
@@ -424,7 +424,7 @@ get_inline_stack (location_t locus, inline_stack *
 
 /* Return STMT's combined location, which is a 32bit integer in which
higher 16 bits stores the line offset of LOC to the start lineno
-   of DECL, The lower 16 bits stores the discrimnator.  */
+   of DECL, The lower 16 bits stores the discriminator.  */
 
 static unsigned
 get_relative_location_for_stmt (gimple stmt)
@@ -481,8 +481,8 @@ string_table::get_index (const char *name) const
   string_index_map::const_iterator iter = map_.find (name);
   if (iter == map_.end ())
 return -1;
-  else
-return iter-second;
+
+  return iter-second;
 }
 
 /* Return the index of a given function DECL. Return -1 if DECL is not 
@@ -502,8 +502,8 @@ string_table::get_index_by_decl (tree decl) const
 return ret;
   if (DECL_ABSTRACT_ORIGIN (decl))
 return get_index_by_decl (DECL_ABSTRACT_ORIGIN (decl));
-  else
-return -1;
+
+  return -1;
 }
 
 /* Return the function name of a given INDEX.  */
@@ -569,8 +569,8 @@ function_instance::get_function_instance_by_decl (
 }
   if (DECL_ABSTRACT_ORIGIN (decl))
 return get_function_instance_by_decl (lineno, DECL_ABSTRACT_ORIGIN (decl));
-  else
-return NULL;
+
+  return NULL;
 }
 
 /* Store the profile info for LOC in INFO. Return TRUE if profile info
@@ -597,7 +597,7 @@ function_instance::mark_annotated (location_t loc)
   iter-second.annotated = true;
 }
 
-/* Read the inlinied indirect call target profile for STMT and store it in
+/* Read the inlined indirect call target profile for STMT and store it in
MAP, return the total count for all inlined indirect calls.  */
 
 gcov_type
@@ -824,8 +824,8 @@ autofdo_source_profile::get_callsite_total_count (
   || afdo_string_table-get_index (IDENTIFIER_POINTER (
  DECL_ASSEMBLER_NAME (edge-callee-decl))) != s-name ())
 return 0;
-  else
-return s-total_count ();
+
+  return s-total_count ();
 }
 
 /* Read AutoFDO profile and returns TRUE on success.  */
@@ -956,9 +956,9 @@ read_profile (void)
histograms for indirect-call optimization.
 
This function is actually served for 2 purposes:
-     * before annotation, we need to mark histogram, promote and inline
-     * after annotation, we just need to mark, and let follow-up logic to
-       decide if it needs to promote and inline.  */
+ * before annotation, we need to mark histogram, promote and inline
+ * after annotation, we just need to mark, and let follow-up logic to
+   decide if it needs to promote and inline.  */
 
 static void
 afdo_indirect_call (gimple_stmt_iterator *gsi, const icall_target_map map,
@@ -1054,7 +1054,7 @@ set_edge_annotated (edge e, edge_set *annotated)
 }
 
 /* For a given BB, set its execution count. Attach value profile if a stmt
-   is not in PROMOTED, because we only want to promot an indirect call once.
+   is not in PROMOTED, because we only want to promote an indirect call once.
Return TRUE if BB is annotated.  */
 
 static bool
@@ -1138,7 +1138,7 @@ afdo_find_equiv_class (bb_set *annotated_bb)
 bb1-aux = bb;
 if (bb1-count  bb-count  is_bb_annotated (bb1, 

Re: [PATCH, autofdo] Some code cleanup

2015-01-17 Thread Jan Hubicka
 Hi,
 
 I updated the patch adding one ChangeLog entry.
 OK for the trunk?  Thanks.

OK thanks.
(for my taste the else before return is OK, but I do not mind either way.
Comment updates are definitly welcome)

Honza
 
 
 Index: gcc/ChangeLog
 ===
 --- gcc/ChangeLog (revision 219297)
 +++ gcc/ChangeLog (working copy)
 @@ -1,3 +1,12 @@
 +2015-01-17  Felix Yang  felix.y...@huawei.com
 +
 + * auto-profile.c (afdo_find_equiv_class): Remove unnecessary code.
 + (autofdo_source_profile::get_callsite_total_count,
 + function_instance::get_function_instance_by_decl,
 + string_table::get_index, string_table::get_index_by_decl,
 + afdo_vpt_for_early_inline, afdo_callsite_hot_enough_for_early_inline):
 + Fix comment typos and formatting.
 +
  2015-01-06  Sandra Loosemore  san...@codesourcery.com
  
   * doc/invoke.texi (RS/6000 and PowerPC Options): Tidy formatting
 Index: gcc/auto-profile.c
 ===
 --- gcc/auto-profile.c(revision 219297)
 +++ gcc/auto-profile.c(working copy)
 @@ -96,7 +96,7 @@ along with GCC; see the file COPYING3.  If not see
   standalone symbol, or a clone of a function that is inlined into another
   function.
  
 -   Phase 2: Early inline + valur profile transformation.
 +   Phase 2: Early inline + value profile transformation.
   Early inline uses autofdo_source_profile to find if a callsite is:
  * inlined in the profiled binary.
  * callee body is hot in the profiling run.
 @@ -361,7 +361,7 @@ get_original_name (const char *name)
  
  /* Return the combined location, which is a 32bit integer in which
 higher 16 bits stores the line offset of LOC to the start lineno
 -   of DECL, The lower 16 bits stores the discrimnator.  */
 +   of DECL, The lower 16 bits stores the discriminator.  */
  
  static unsigned
  get_combined_location (location_t loc, tree decl)
 @@ -424,7 +424,7 @@ get_inline_stack (location_t locus, inline_stack *
  
  /* Return STMT's combined location, which is a 32bit integer in which
 higher 16 bits stores the line offset of LOC to the start lineno
 -   of DECL, The lower 16 bits stores the discrimnator.  */
 +   of DECL, The lower 16 bits stores the discriminator.  */
  
  static unsigned
  get_relative_location_for_stmt (gimple stmt)
 @@ -481,8 +481,8 @@ string_table::get_index (const char *name) const
string_index_map::const_iterator iter = map_.find (name);
if (iter == map_.end ())
  return -1;
 -  else
 -return iter-second;
 +
 +  return iter-second;
  }
  
  /* Return the index of a given function DECL. Return -1 if DECL is not 
 @@ -502,8 +502,8 @@ string_table::get_index_by_decl (tree decl) const
  return ret;
if (DECL_ABSTRACT_ORIGIN (decl))
  return get_index_by_decl (DECL_ABSTRACT_ORIGIN (decl));
 -  else
 -return -1;
 +
 +  return -1;
  }
  
  /* Return the function name of a given INDEX.  */
 @@ -569,8 +569,8 @@ function_instance::get_function_instance_by_decl (
  }
if (DECL_ABSTRACT_ORIGIN (decl))
  return get_function_instance_by_decl (lineno, DECL_ABSTRACT_ORIGIN 
 (decl));
 -  else
 -return NULL;
 +
 +  return NULL;
  }
  
  /* Store the profile info for LOC in INFO. Return TRUE if profile info
 @@ -597,7 +597,7 @@ function_instance::mark_annotated (location_t loc)
iter-second.annotated = true;
  }
  
 -/* Read the inlinied indirect call target profile for STMT and store it in
 +/* Read the inlined indirect call target profile for STMT and store it in
 MAP, return the total count for all inlined indirect calls.  */
  
  gcov_type
 @@ -824,8 +824,8 @@ autofdo_source_profile::get_callsite_total_count (
|| afdo_string_table-get_index (IDENTIFIER_POINTER (
   DECL_ASSEMBLER_NAME (edge-callee-decl))) != s-name ())
  return 0;
 -  else
 -return s-total_count ();
 +
 +  return s-total_count ();
  }
  
  /* Read AutoFDO profile and returns TRUE on success.  */
 @@ -956,9 +956,9 @@ read_profile (void)
 histograms for indirect-call optimization.
  
 This function is actually served for 2 purposes:
 -     * before annotation, we need to mark histogram, promote and inline
 -     * after annotation, we just need to mark, and let follow-up logic to
 -       decide if it needs to promote and inline.  */
 + * before annotation, we need to mark histogram, promote and inline
 + * after annotation, we just need to mark, and let follow-up logic to
 +   decide if it needs to promote and inline.  */
  
  static void
  afdo_indirect_call (gimple_stmt_iterator *gsi, const icall_target_map map,
 @@ -1054,7 +1054,7 @@ set_edge_annotated (edge e, edge_set *annotated)
  }
  
  /* For a given BB, set its execution count. Attach value profile if a stmt
 -   is not in PROMOTED, because we only want to promot an indirect call once.
 +   is not in PROMOTED, because we 

[PATCH, autofdo] Some code cleanup

2015-01-12 Thread Yangfei (Felix)
Hi,

  The attached patch does some code cleanup for auto-profile.c: fix typos and 
remove some unnecessary MAX/MIN checks plus some else.
  OK for the trunk? 


Index: gcc/auto-profile.c
===
--- gcc/auto-profile.c  (revision 219297)
+++ gcc/auto-profile.c  (working copy)
@@ -96,7 +96,7 @@ along with GCC; see the file COPYING3.  If not see
  standalone symbol, or a clone of a function that is inlined into another
  function.
 
-   Phase 2: Early inline + valur profile transformation.
+   Phase 2: Early inline + value profile transformation.
  Early inline uses autofdo_source_profile to find if a callsite is:
 * inlined in the profiled binary.
 * callee body is hot in the profiling run.
@@ -361,7 +361,7 @@ get_original_name (const char *name)
 
 /* Return the combined location, which is a 32bit integer in which
higher 16 bits stores the line offset of LOC to the start lineno
-   of DECL, The lower 16 bits stores the discrimnator.  */
+   of DECL, The lower 16 bits stores the discriminator.  */
 
 static unsigned
 get_combined_location (location_t loc, tree decl)
@@ -424,7 +424,7 @@ get_inline_stack (location_t locus, inline_stack *
 
 /* Return STMT's combined location, which is a 32bit integer in which
higher 16 bits stores the line offset of LOC to the start lineno
-   of DECL, The lower 16 bits stores the discrimnator.  */
+   of DECL, The lower 16 bits stores the discriminator.  */
 
 static unsigned
 get_relative_location_for_stmt (gimple stmt)
@@ -481,8 +481,8 @@ string_table::get_index (const char *name) const
   string_index_map::const_iterator iter = map_.find (name);
   if (iter == map_.end ())
 return -1;
-  else
-return iter-second;
+
+  return iter-second;
 }
 
 /* Return the index of a given function DECL. Return -1 if DECL is not 
@@ -502,8 +502,8 @@ string_table::get_index_by_decl (tree decl) const
 return ret;
   if (DECL_ABSTRACT_ORIGIN (decl))
 return get_index_by_decl (DECL_ABSTRACT_ORIGIN (decl));
-  else
-return -1;
+
+  return -1;
 }
 
 /* Return the function name of a given INDEX.  */
@@ -569,8 +569,8 @@ function_instance::get_function_instance_by_decl (
 }
   if (DECL_ABSTRACT_ORIGIN (decl))
 return get_function_instance_by_decl (lineno, DECL_ABSTRACT_ORIGIN (decl));
-  else
-return NULL;
+
+  return NULL;
 }
 
 /* Store the profile info for LOC in INFO. Return TRUE if profile info
@@ -597,7 +597,7 @@ function_instance::mark_annotated (location_t loc)
   iter-second.annotated = true;
 }
 
-/* Read the inlinied indirect call target profile for STMT and store it in
+/* Read the inlined indirect call target profile for STMT and store it in
MAP, return the total count for all inlined indirect calls.  */
 
 gcov_type
@@ -824,8 +824,8 @@ autofdo_source_profile::get_callsite_total_count (
   || afdo_string_table-get_index (IDENTIFIER_POINTER (
  DECL_ASSEMBLER_NAME (edge-callee-decl))) != s-name ())
 return 0;
-  else
-return s-total_count ();
+
+  return s-total_count ();
 }
 
 /* Read AutoFDO profile and returns TRUE on success.  */
@@ -956,9 +956,9 @@ read_profile (void)
histograms for indirect-call optimization.
 
This function is actually served for 2 purposes:
-     * before annotation, we need to mark histogram, promote and inline
-     * after annotation, we just need to mark, and let follow-up logic to
-       decide if it needs to promote and inline.  */
+ * before annotation, we need to mark histogram, promote and inline
+ * after annotation, we just need to mark, and let follow-up logic to
+   decide if it needs to promote and inline.  */
 
 static void
 afdo_indirect_call (gimple_stmt_iterator *gsi, const icall_target_map map,
@@ -1054,7 +1054,7 @@ set_edge_annotated (edge e, edge_set *annotated)
 }
 
 /* For a given BB, set its execution count. Attach value profile if a stmt
-   is not in PROMOTED, because we only want to promot an indirect call once.
+   is not in PROMOTED, because we only want to promote an indirect call once.
Return TRUE if BB is annotated.  */
 
 static bool
@@ -1138,7 +1138,7 @@ afdo_find_equiv_class (bb_set *annotated_bb)
 bb1-aux = bb;
 if (bb1-count  bb-count  is_bb_annotated (bb1, *annotated_bb))
   {
-bb-count = MAX (bb-count, bb1-count);
+bb-count = bb1-count;
 set_bb_annotated (bb, annotated_bb);
   }
   }
@@ -1150,7 +1150,7 @@ afdo_find_equiv_class (bb_set *annotated_bb)
 bb1-aux = bb;
 if (bb1-count  bb-count  is_bb_annotated (bb1, *annotated_bb))
   {
-bb-count = MAX (bb-count, bb1-count);
+bb-count = bb1-count;
 set_bb_annotated (bb, annotated_bb);
   }
   }
@@ -1455,13 +1455,14 @@ afdo_vpt_for_early_inline (stmt_set *promoted_stmt
   }
   }
   }
+
   if (has_vpt)
 {
   optimize_inline_calls