Commit 6eb0ae29 by Jan Hubicka Committed by Jan Hubicka

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
parent 9f442ef4
2014-09-25 Jan Hubicka <hubicka@ucw.cz> 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>
* 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,
type_known_to_have_no_deriavations_p, types_must_be_same_for_odr, type_known_to_have_no_deriavations_p, types_must_be_same_for_odr,
types_odr_comparable): Declare. types_odr_comparable): Declare.
...@@ -2566,36 +2566,6 @@ ipa_analyze_node (struct cgraph_node *node) ...@@ -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. */
......
...@@ -587,7 +587,6 @@ tree ipa_get_indirect_edge_target (struct cgraph_edge *ie, ...@@ -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. */
......
...@@ -4314,8 +4314,6 @@ eliminate_dom_walker::before_dom_children (basic_block b) ...@@ -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));
} }
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment