aboutsummaryrefslogtreecommitdiff
path: root/gcc/ipa-inline-analysis.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2011-05-01 21:11:07 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2011-05-01 19:11:07 +0000
commit09dfe187f0fbc756826672f79495bd3d5c142f78 (patch)
treea8895ae3de3bfde152ef04c6c346ed4c3be37327 /gcc/ipa-inline-analysis.c
parent12c0e3856baf63f933061aacd4f70cd865913ab1 (diff)
downloadgcc-09dfe187f0fbc756826672f79495bd3d5c142f78.zip
gcc-09dfe187f0fbc756826672f79495bd3d5c142f78.tar.gz
gcc-09dfe187f0fbc756826672f79495bd3d5c142f78.tar.bz2
ipa-inline.c (caller_growth_limits): Fix thinko when
* ipa-inline.c (caller_growth_limits): Fix thinko when * ipa-inline.c (caller_growth_limits): Fix thinko when looking for largest stack frame. * ipa-inline.h (dump_inline_summary): Declare. * ipa-inline-analysis.c (dump_inline_edge_summary): Dump info on stack usage. (dump_inline_summary): Export. (debug_inline_summary): Declare as DEBUG_FUNCTION. From-SVN: r173234
Diffstat (limited to 'gcc/ipa-inline-analysis.c')
-rw-r--r--gcc/ipa-inline-analysis.c19
1 files changed, 14 insertions, 5 deletions
diff --git a/gcc/ipa-inline-analysis.c b/gcc/ipa-inline-analysis.c
index 2a0a258..50ae74d 100644
--- a/gcc/ipa-inline-analysis.c
+++ b/gcc/ipa-inline-analysis.c
@@ -735,7 +735,7 @@ dump_inline_edge_summary (FILE * f, int indent, struct cgraph_node *node,
for (edge = node->callees; edge; edge = edge->next_callee)
{
struct inline_edge_summary *es = inline_edge_summary (edge);
- fprintf (f, "%*s%s/%i %s\n%*s loop depth:%2i freq:%4i size:%2i time: %2i",
+ fprintf (f, "%*s%s/%i %s\n%*s loop depth:%2i freq:%4i size:%2i time: %2i callee size:%2i stack:%2i",
indent, "", cgraph_node_name (edge->callee),
edge->callee->uid,
!edge->inline_failed ? "inlined"
@@ -744,7 +744,9 @@ dump_inline_edge_summary (FILE * f, int indent, struct cgraph_node *node,
es->loop_depth,
edge->frequency,
es->call_stmt_size,
- es->call_stmt_time);
+ es->call_stmt_time,
+ (int)inline_summary (edge->callee)->size,
+ (int)inline_summary (edge->callee)->estimated_stack_size);
if (es->predicate)
{
fprintf (f, " predicate: ");
@@ -753,7 +755,14 @@ dump_inline_edge_summary (FILE * f, int indent, struct cgraph_node *node,
else
fprintf (f, "\n");
if (!edge->inline_failed)
- dump_inline_edge_summary (f, indent+2, edge->callee, info);
+ {
+ fprintf (f, "%*sStack frame offset %i, callee self size %i, callee size %i\n",
+ indent+2, "",
+ (int)inline_summary (edge->callee)->stack_frame_offset,
+ (int)inline_summary (edge->callee)->estimated_self_stack_size,
+ (int)inline_summary (edge->callee)->estimated_stack_size);
+ dump_inline_edge_summary (f, indent+2, edge->callee, info);
+ }
}
for (edge = node->indirect_calls; edge; edge = edge->next_callee)
{
@@ -775,7 +784,7 @@ dump_inline_edge_summary (FILE * f, int indent, struct cgraph_node *node,
}
-static void
+void
dump_inline_summary (FILE * f, struct cgraph_node *node)
{
if (node->analyzed)
@@ -816,7 +825,7 @@ dump_inline_summary (FILE * f, struct cgraph_node *node)
}
}
-void
+DEBUG_FUNCTION void
debug_inline_summary (struct cgraph_node *node)
{
dump_inline_summary (stderr, node);