diff options
author | Jan Hubicka <jh@suse.cz> | 2005-05-19 12:38:42 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2005-05-19 10:38:42 +0000 |
commit | e42922b1ae4c3da94882d3a92ce978a0db123064 (patch) | |
tree | 1d011084a5002e1aadab35d8ef841e441fb68211 /gcc/tree-inline.c | |
parent | eef16504e21f8d504b6a648cf73955e977d5adf6 (diff) | |
download | gcc-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.c | 6 |
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; } |