cgraph.h (cgraph_optimize_for_size_p): Declare.
authorJan Hubicka <jh@suse.cz>
Tue, 19 Apr 2011 14:23:38 +0000 (16:23 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Tue, 19 Apr 2011 14:23:38 +0000 (14:23 +0000)
* cgraph.h (cgraph_optimize_for_size_p): Declare.
* ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
* predict.c (cgraph_optimize_for_size_p): Break out from ...
(optimize_function_for_size_p) ... here.

From-SVN: r172711

gcc/ChangeLog
gcc/cgraph.h
gcc/ipa-cp.c
gcc/predict.c

index 14ed70733ca9919ab892bc9a0ca34bf6701a1b3f..efad7e54f366213cc19e74766930762e6b6c0666 100644 (file)
@@ -1,3 +1,10 @@
+2011-04-19  Jan Hubicka  <jh@suse.cz>
+
+       * cgraph.h (cgraph_optimize_for_size_p): Declare.
+       * ipa-cp.c (ipcp_insert_stage): Use cgraph_optimize_for_size_p.
+       * predict.c (cgraph_optimize_for_size_p): Break out from ...
+       (optimize_function_for_size_p) ... here.
+
 2011-04-19  Richard Guenther  <rguenther@suse.de>
 
        PR lto/48207
index e3a3b58d4ffd257bf4b6042aed9cda9c429bca7e..a9c58798f570c1349d37e23a643f95afaf824006 100644 (file)
@@ -656,6 +656,7 @@ bool cgraph_comdat_can_be_unshared_p (struct cgraph_node *);
 
 /* In predict.c  */
 bool cgraph_maybe_hot_edge_p (struct cgraph_edge *e);
+bool cgraph_optimize_for_size_p (struct cgraph_node *);
 
 /* In varpool.c  */
 extern GTY(()) struct varpool_node *varpool_nodes_queue;
index d8de9b7d9e819863a8a2fa7a5ab05f812378b03a..0c05711361472cf9027aee790979ebcc704263fc 100644 (file)
@@ -1410,7 +1410,7 @@ ipcp_insert_stage (void)
       if (new_size + growth > max_new_size)
        break;
       if (growth
-         && optimize_function_for_size_p (DECL_STRUCT_FUNCTION (node->decl)))
+         && cgraph_optimize_for_size_p (node))
        {
          if (dump_file)
            fprintf (dump_file, "Not versioning, cold code would grow");
index f210428fca1fddfb2f182fa315cf39bc11843040..db9c5c5a8fe761bbcf006d1650869d44b1fdb977 100644 (file)
@@ -196,7 +196,9 @@ maybe_hot_edge_p (edge e)
   return maybe_hot_frequency_p (EDGE_FREQUENCY (e));
 }
 
+
 /* Return true in case BB is probably never executed.  */
+
 bool
 probably_never_executed_bb_p (const_basic_block bb)
 {
@@ -209,24 +211,31 @@ probably_never_executed_bb_p (const_basic_block bb)
   return false;
 }
 
-/* Return true when current function should always be optimized for size.  */
+/* Return true if NODE should be optimized for size.  */
 
 bool
-optimize_function_for_size_p (struct function *fun)
+cgraph_optimize_for_size_p (struct cgraph_node *node)
 {
-  struct cgraph_node *node;
-
   if (optimize_size)
     return true;
-  if (!fun || !fun->decl)
-    return false;
-  node = cgraph_get_node (fun->decl);
   if (node && (node->frequency == NODE_FREQUENCY_UNLIKELY_EXECUTED))
     return true;
   else
     return false;
 }
 
+/* Return true when current function should always be optimized for size.  */
+
+bool
+optimize_function_for_size_p (struct function *fun)
+{
+  if (optimize_size)
+    return true;
+  if (!fun || !fun->decl)
+    return false;
+  return cgraph_optimize_for_size_p (cgraph_get_node (fun->decl));
+}
+
 /* Return true when current function should always be optimized for speed.  */
 
 bool