ipa-inline-analysis.c (true_predicate, [...]): Fix formatting.

* ipa-inline-analysis.c (true_predicate, single_cond_predicate,
	reset_inline_edge_summary): Fix
	formatting.
	(account_size_time): Bump up the limit on number of size/time entries to
	256.
	(estimate_function_body_sizes): Work in reverse postorder.

From-SVN: r193285
This commit is contained in:
Jan Hubicka 2012-11-07 10:22:50 +01:00 committed by Jan Hubicka
parent d720a22b6e
commit 13412e2fec
2 changed files with 24 additions and 6 deletions

View File

@ -1,3 +1,12 @@
2012-11-07 Jan Hubicka <jh@suse.cz>
* ipa-inline-analysis.c (true_predicate, single_cond_predicate,
reset_inline_edge_summary): Fix
formatting.
(account_size_time): Bump up the limit on number of size/time entries to
256.
(estimate_function_body_sizes): Work in reverse postorder.
2012-11-07 David S. Miller <davem@davemloft.net>
PR bootstrap/55211

View File

@ -149,7 +149,7 @@ static inline struct predicate
true_predicate (void)
{
struct predicate p;
p.clause[0]=0;
p.clause[0] = 0;
return p;
}
@ -160,8 +160,8 @@ static inline struct predicate
single_cond_predicate (int cond)
{
struct predicate p;
p.clause[0]=1 << cond;
p.clause[1]=0;
p.clause[0] = 1 << cond;
p.clause[1] = 0;
return p;
}
@ -692,12 +692,14 @@ account_size_time (struct inline_summary *summary, int size, int time,
found = true;
break;
}
if (i == 32)
if (i == 256)
{
i = 0;
found = true;
e = &VEC_index (size_time_entry, summary->entry, 0);
gcc_assert (!e->predicate.clause[0]);
if (dump_file && (dump_flags & TDF_DETAILS))
fprintf (dump_file, "\t\tReached limit on number of entries, ignoring the predicate.");
}
if (dump_file && (dump_flags & TDF_DETAILS) && (time || size))
{
@ -970,7 +972,7 @@ reset_inline_edge_summary (struct cgraph_edge *e)
{
struct inline_edge_summary *es = inline_edge_summary (e);
es->call_stmt_size = es->call_stmt_time =0;
es->call_stmt_size = es->call_stmt_time = 0;
if (es->predicate)
pool_free (edge_predicate_pool, es->predicate);
es->predicate = NULL;
@ -2280,6 +2282,8 @@ estimate_function_body_sizes (struct cgraph_node *node, bool early)
struct predicate bb_predicate;
struct ipa_node_params *parms_info = NULL;
VEC (predicate_t, heap) *nonconstant_names = NULL;
int nblocks, n;
int *order;
info->conds = 0;
info->entry = 0;
@ -2312,8 +2316,12 @@ estimate_function_body_sizes (struct cgraph_node *node, bool early)
gcc_assert (my_function && my_function->cfg);
if (parms_info)
compute_bb_predicates (node, parms_info, info);
FOR_EACH_BB_FN (bb, my_function)
gcc_assert (cfun == my_function);
order = XNEWVEC (int, n_basic_blocks);
nblocks = pre_and_rev_post_order_compute (NULL, order, false);
for (n = 0; n < nblocks; n++)
{
bb = BASIC_BLOCK (order[n]);
freq = compute_call_stmt_bb_frequency (node->symbol.decl, bb);
/* TODO: Obviously predicates can be propagated down across CFG. */
@ -2486,6 +2494,7 @@ estimate_function_body_sizes (struct cgraph_node *node, bool early)
time = (time + CGRAPH_FREQ_BASE / 2) / CGRAPH_FREQ_BASE;
if (time > MAX_TIME)
time = MAX_TIME;
free (order);
if (!early && nonconstant_names)
{