ipa-prop.c (ipa_intraprocedural_devirtualization): Remove.

* ipa-prop.c (ipa_intraprocedural_devirtualization): Remove.
	* ipa-prop.h (ipa_intraprocedural_devirtualization): Remove.
	* tree-ssa-prop.c (eliminate_dom_walker::before_dom_children):
	Remove.

From-SVN: r215628
This commit is contained in:
Jan Hubicka 2014-09-26 03:49:40 +02:00 committed by Jan Hubicka
parent 9f442ef4a0
commit 6eb0ae29ec
4 changed files with 7 additions and 33 deletions

View File

@ -1,3 +1,10 @@
2014-09-25 Jan Hubicka <hubicka@ucw.cz>
* ipa-prop.c (ipa_intraprocedural_devirtualization): Remove.
* ipa-prop.h (ipa_intraprocedural_devirtualization): Remove.
* tree-ssa-prop.c (eliminate_dom_walker::before_dom_children):
Remove.
2014-09-25 Jan Hubicka <hubicka@ucw.cz> 2014-09-25 Jan Hubicka <hubicka@ucw.cz>
* ipa-utils.h (subbinfo_with_vtable_at_offset, type_all_derivations_known_p, * ipa-utils.h (subbinfo_with_vtable_at_offset, type_all_derivations_known_p,

View File

@ -2566,36 +2566,6 @@ ipa_analyze_node (struct cgraph_node *node)
pop_cfun (); pop_cfun ();
} }
/* Given a statement CALL which must be a GIMPLE_CALL calling an OBJ_TYPE_REF
attempt a type-based devirtualization. If successful, return the
target function declaration, otherwise return NULL. */
tree
ipa_intraprocedural_devirtualization (gimple call)
{
tree binfo, token, fndecl;
struct ipa_jump_func jfunc;
tree otr = gimple_call_fn (call);
jfunc.type = IPA_JF_UNKNOWN;
compute_known_type_jump_func (OBJ_TYPE_REF_OBJECT (otr), &jfunc,
call, obj_type_ref_class (otr));
if (jfunc.type != IPA_JF_KNOWN_TYPE)
return NULL_TREE;
binfo = ipa_binfo_from_known_type_jfunc (&jfunc);
if (!binfo)
return NULL_TREE;
token = OBJ_TYPE_REF_TOKEN (otr);
fndecl = gimple_get_virt_method_for_binfo (tree_to_uhwi (token),
binfo);
#ifdef ENABLE_CHECKING
if (fndecl)
gcc_assert (possible_polymorphic_call_target_p
(otr, call, cgraph_node::get (fndecl)));
#endif
return fndecl;
}
/* Update the jump function DST when the call graph edge corresponding to SRC is /* Update the jump function DST when the call graph edge corresponding to SRC is
is being inlined, knowing that DST is of type ancestor and src of known is being inlined, knowing that DST is of type ancestor and src of known
type. */ type. */

View File

@ -587,7 +587,6 @@ tree ipa_get_indirect_edge_target (struct cgraph_edge *ie,
vec<ipa_agg_jump_function_p> ); vec<ipa_agg_jump_function_p> );
struct cgraph_edge *ipa_make_edge_direct_to_target (struct cgraph_edge *, tree); struct cgraph_edge *ipa_make_edge_direct_to_target (struct cgraph_edge *, tree);
tree ipa_binfo_from_known_type_jfunc (struct ipa_jump_func *); tree ipa_binfo_from_known_type_jfunc (struct ipa_jump_func *);
tree ipa_intraprocedural_devirtualization (gimple);
tree ipa_impossible_devirt_target (struct cgraph_edge *, tree); tree ipa_impossible_devirt_target (struct cgraph_edge *, tree);
/* Functions related to both. */ /* Functions related to both. */

View File

@ -4314,8 +4314,6 @@ eliminate_dom_walker::before_dom_children (basic_block b)
gimple_call_set_fndecl (stmt, fn); gimple_call_set_fndecl (stmt, fn);
gimple_set_modified (stmt, true); gimple_set_modified (stmt, true);
} }
else
gcc_assert (!ipa_intraprocedural_devirtualization (stmt));
} }
} }