+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,
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
is being inlined, knowing that DST is of type ancestor and src of known
type. */
vec<ipa_agg_jump_function_p> );
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_intraprocedural_devirtualization (gimple);
tree ipa_impossible_devirt_target (struct cgraph_edge *, tree);
/* Functions related to both. */