cgraph.h (cgraph_optimize_for_size_p): Declare.
* 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
This commit is contained in:
parent
be7f782278
commit
e6416b305e
@ -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
|
||||
|
@ -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;
|
||||
|
@ -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");
|
||||
|
@ -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,22 +211,29 @@ probably_never_executed_bb_p (const_basic_block bb)
|
||||
return false;
|
||||
}
|
||||
|
||||
/* Return true if NODE should be optimized for size. */
|
||||
|
||||
bool
|
||||
cgraph_optimize_for_size_p (struct cgraph_node *node)
|
||||
{
|
||||
if (optimize_size)
|
||||
return true;
|
||||
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)
|
||||
{
|
||||
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 cgraph_optimize_for_size_p (cgraph_get_node (fun->decl));
|
||||
}
|
||||
|
||||
/* Return true when current function should always be optimized for speed. */
|
||||
|
Loading…
x
Reference in New Issue
Block a user