]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/cgraph.c
cgraph.c (cgraph_turn_edge_to_speculative): Return newly introduced edge; fix typo...
authorJan Hubicka <jh@suse.cz>
Tue, 13 Aug 2013 12:21:16 +0000 (14:21 +0200)
committerJan Hubicka <hubicka@gcc.gnu.org>
Tue, 13 Aug 2013 12:21:16 +0000 (12:21 +0000)
commit09ce36608d268b1a3124411a3ad2f701e5cf24ec
treee903dc537f27c5dd690cb3a98029321225e8f7b4
parent537e035c48955b3ea88dcb3a4b0ff03ef4bb2e31
cgraph.c (cgraph_turn_edge_to_speculative): Return newly introduced edge; fix typo in sanity check.

* cgraph.c (cgraph_turn_edge_to_speculative): Return newly
introduced edge; fix typo in sanity check.
(cgraph_resolve_speculation): Export; improve diagnostic.
(cgraph_redirect_edge_call_stmt_to_callee): Better diagnostic; cancel
speculation at type mismatch.
* cgraph.h (cgraph_turn_edge_to_speculative): Update.
(cgraph_resolve_speculation): Declare.
(symtab_can_be_discarded): New function.
* value-prof.c (gimple_ic_transform): Remove actual transform code.
* ipa-inline-transform.c (speculation_removed): New global var.
(clone_inlined_nodes): See if speculation can be removed.
(inline_call): If speculations was removed, we growths may not match.
* ipa-inline.c (can_inline_edge_p): Add DISREGARD_LIMITS parameter.
(speculation_useful_p): New function.
(resolve_noninline_speculation): New function.
(inline_small_functions): Resolve useless speculations.
* ipa-inline.h (speculation_useful_p): Declare
* ipa.c (can_replace_by_local_alias): Simplify.
(ipa_profile): Produce speculative calls in non-lto, too;
add simple cost model; produce local aliases.

From-SVN: r201683
gcc/ChangeLog
gcc/cgraph.c
gcc/cgraph.h
gcc/ipa-inline-transform.c
gcc/ipa-inline.c
gcc/ipa-inline.h
gcc/ipa.c
gcc/value-prof.c