diff options
author | Martin Jambor <mjambor@suse.cz> | 2012-12-07 14:05:52 +0100 |
---|---|---|
committer | Martin Jambor <jamborm@gcc.gnu.org> | 2012-12-07 14:05:52 +0100 |
commit | d250540a66a6dbe71b03213bc20344b1503e1b6a (patch) | |
tree | 0dd256270df13d931607b31bb02193b01e3fa435 /gcc/ipa-inline-transform.c | |
parent | 4bd7b70b8954bb935a3b88ffa70f384552cc6fb3 (diff) | |
download | gcc-d250540a66a6dbe71b03213bc20344b1503e1b6a.zip gcc-d250540a66a6dbe71b03213bc20344b1503e1b6a.tar.gz gcc-d250540a66a6dbe71b03213bc20344b1503e1b6a.tar.bz2 |
re PR middle-end/55078 (FAIL: g++.dg/torture/pr46154.C)
2012-12-07 Martin Jambor <mjambor@suse.cz>
PR middle-end/55078
* ipa-inline-transform.c (inline_call): Turn #if 0 to #ifdef
ENABLE_CHECKING.
* ipa-prop.c (try_make_edge_direct_simple_call): Use
ipa_value_from_jfunc.
(try_make_edge_direct_virtual_call): Likewise.
(update_indirect_edges_after_inlining): Lookup new_root_info and pass
it to the functions above.
From-SVN: r194301
Diffstat (limited to 'gcc/ipa-inline-transform.c')
-rw-r--r-- | gcc/ipa-inline-transform.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/gcc/ipa-inline-transform.c b/gcc/ipa-inline-transform.c index 84f4fcc..2f6e816 100644 --- a/gcc/ipa-inline-transform.c +++ b/gcc/ipa-inline-transform.c @@ -211,8 +211,7 @@ inline_call (struct cgraph_edge *e, bool update_original, struct cgraph_node *callee = cgraph_function_or_thunk_node (e->callee, NULL); bool new_edges_found = false; - /* FIXME: re-enable once ipa-cp problem is fixed. */ -#if 0 +#ifdef ENABLE_CHECKING int estimated_growth = estimate_edge_growth (e); bool predicated = inline_edge_summary (e)->predicate != NULL; #endif @@ -260,8 +259,8 @@ inline_call (struct cgraph_edge *e, bool update_original, if (update_overall_summary) inline_update_overall_summary (to); new_size = inline_summary (to)->size; - /* FIXME: re-enable once ipa-cp problem is fixed. */ -#if 0 + +#ifdef ENABLE_CHECKING /* Verify that estimated growth match real growth. Allow off-by-one error due to INLINE_SIZE_SCALE roudoff errors. */ gcc_assert (!update_overall_summary || !overall_size @@ -270,7 +269,7 @@ inline_call (struct cgraph_edge *e, bool update_original, wrong, we should remove them from callgraph. */ || predicated); #endif - + /* Account the change of overall unit size; external functions will be removed and are thus not accounted. */ if (overall_size |