diff options
author | Jan Hubicka <jh@suse.cz> | 2011-05-01 21:11:07 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2011-05-01 19:11:07 +0000 |
commit | 09dfe187f0fbc756826672f79495bd3d5c142f78 (patch) | |
tree | a8895ae3de3bfde152ef04c6c346ed4c3be37327 /gcc/ipa-inline-analysis.c | |
parent | 12c0e3856baf63f933061aacd4f70cd865913ab1 (diff) | |
download | gcc-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.c | 19 |
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); |