mirror of git://gcc.gnu.org/git/gcc.git
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:
parent
9f442ef4a0
commit
6eb0ae29ec
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
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)
|
||||||
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));
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue