diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2014-03-26 03:11:57 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2014-03-26 02:11:57 +0000 |
commit | 9de6f6c3eed463e8c41b95a28ad7f2186e379fff (patch) | |
tree | 58c27722a6391d91e8bbfcb902c1edc28e754d14 /gcc/ipa-inline.h | |
parent | d7636f5609dc4325d145b82adc9dd977d079303e (diff) | |
download | gcc-9de6f6c3eed463e8c41b95a28ad7f2186e379fff.zip gcc-9de6f6c3eed463e8c41b95a28ad7f2186e379fff.tar.gz gcc-9de6f6c3eed463e8c41b95a28ad7f2186e379fff.tar.bz2 |
re PR ipa/60315 (template constructor switch optimization)
PR ipa/60315
* cif-code.def (UNREACHABLE) New code.
* ipa-inline.c (inline_small_functions): Skip edges to __builtlin_unreachable.
(estimate_edge_growth): Allow edges to __builtlin_unreachable.
* ipa-inline-analysis.c (edge_set_predicate): Redirect edges with false
predicate to __bulitin_unreachable.
(set_cond_stmt_execution_predicate): Fix issue when invert_tree_comparison
returns ERROR_MARK.
* ipa-pure-const.c (propagate_pure_const, propagate_nothrow): Do not
propagate to inline clones.
* cgraph.c (verify_edge_corresponds_to_fndecl): Allow redirection
to unreachable.
* ipa-cp.c (create_specialized_node): Be ready for new node to appear.
* cgraphclones.c (cgraph_clone_node): If call destination is already
ureachable, do not redirect it back.
* tree-inline.c (fold_marked_statements): Hanlde calls becoming
unreachable.
From-SVN: r208831
Diffstat (limited to 'gcc/ipa-inline.h')
-rw-r--r-- | gcc/ipa-inline.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/ipa-inline.h b/gcc/ipa-inline.h index 0a59608..48136d2 100644 --- a/gcc/ipa-inline.h +++ b/gcc/ipa-inline.h @@ -285,7 +285,8 @@ static inline int estimate_edge_growth (struct cgraph_edge *edge) { #ifdef ENABLE_CHECKING - gcc_checking_assert (inline_edge_summary (edge)->call_stmt_size); + gcc_checking_assert (inline_edge_summary (edge)->call_stmt_size + || !edge->callee->analyzed); #endif return (estimate_edge_size (edge) - inline_edge_summary (edge)->call_stmt_size); |