aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-inline.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2005-05-19 12:38:42 +0200
committerJan Hubicka <hubicka@gcc.gnu.org>2005-05-19 10:38:42 +0000
commite42922b1ae4c3da94882d3a92ce978a0db123064 (patch)
tree1d011084a5002e1aadab35d8ef841e441fb68211 /gcc/tree-inline.c
parenteef16504e21f8d504b6a648cf73955e977d5adf6 (diff)
downloadgcc-e42922b1ae4c3da94882d3a92ce978a0db123064.zip
gcc-e42922b1ae4c3da94882d3a92ce978a0db123064.tar.gz
gcc-e42922b1ae4c3da94882d3a92ce978a0db123064.tar.bz2
basic-block.h (REG_BR_PROB_BASE): Define.
* basic-block.h (REG_BR_PROB_BASE): Define. * cgraph.c (cgraph_create_edge): Initialize loop_nest and count. (dump_cgraph_node): Dump count. (cgraph_clone_edge): Rescale counts. (cgraph_clone_node): Likewise. * cgraph.h: Include basic-block.h (cgraph_node): Add count. (cgraph_edge): Add count and loop_nest. (cgraph_node, cgraph_edge, cgraph_clone_edge, cgraph_clone_node): Update prototypes. * cgraphunit.c: Kill now redundant inlining comment. (cgraph_create_edges): Make static, maintain current basic block; fix pasto. (record_call_1): Fill in new fields. * ipa-inline.c (cgraph_clone_inlined_nodes): Update call of cgraph_clone_node. (cgraph_decide_recursive_inlining): Likewise. * rtl.h (REG_BR_PROB_BASE): Kill. * tree-inline.c (copy_body_r): Update call of cgraph_clone_edge. (expand_call_inline): Update call of cgraph_create_edge. * tree-optimize.c (tree_rest_of_compilation): Likewise. From-SVN: r99976
Diffstat (limited to 'gcc/tree-inline.c')
-rw-r--r--gcc/tree-inline.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index d9654f4..118f493 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -656,7 +656,8 @@ copy_body_r (tree *tp, int *walk_subtrees, void *data)
associate callgraph nodes. */
edge = cgraph_edge (id->current_node, old_node);
if (edge)
- cgraph_clone_edge (edge, id->node, *tp);
+ cgraph_clone_edge (edge, id->node, *tp,
+ REG_BR_PROB_BASE, 1);
}
}
else if (TREE_CODE (*tp) == RESX_EXPR && id->eh_region_offset)
@@ -1922,7 +1923,8 @@ expand_call_inline (basic_block bb, tree stmt, tree *tp, void *data)
constant propagating arguments. In all other cases we hit a bug
(incorrect node sharing is most common reason for missing edges. */
gcc_assert (dest->needed || !flag_unit_at_a_time);
- cgraph_create_edge (id->node, dest, t)->inline_failed
+ cgraph_create_edge (id->node, dest, t,
+ bb->count, bb->loop_depth)->inline_failed
= N_("originally indirect function call not considered for inlining");
goto egress;
}