diff options
author | Jan Hubicka <hubicka@ucw.cz> | 2014-09-26 03:49:40 +0200 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2014-09-26 01:49:40 +0000 |
commit | 6eb0ae29ec058a56434c43ebd8c8b3741bf6475c (patch) | |
tree | c89e2e926d323591a5f20d5347f51459e4809ae2 /gcc | |
parent | 9f442ef4a094e8d284e28ca6c9b9f57763289b07 (diff) | |
download | gcc-6eb0ae29ec058a56434c43ebd8c8b3741bf6475c.zip gcc-6eb0ae29ec058a56434c43ebd8c8b3741bf6475c.tar.gz gcc-6eb0ae29ec058a56434c43ebd8c8b3741bf6475c.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/ipa-prop.c | 30 | ||||
-rw-r--r-- | gcc/ipa-prop.h | 1 | ||||
-rw-r--r-- | gcc/tree-ssa-pre.c | 2 |
4 files changed, 7 insertions, 33 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 85dd750..e19ba1f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,12 @@ 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, type_known_to_have_no_deriavations_p, types_must_be_same_for_odr, types_odr_comparable): Declare. diff --git a/gcc/ipa-prop.c b/gcc/ipa-prop.c index 36949e3..34d4c02 100644 --- a/gcc/ipa-prop.c +++ b/gcc/ipa-prop.c @@ -2566,36 +2566,6 @@ ipa_analyze_node (struct cgraph_node *node) 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. */ diff --git a/gcc/ipa-prop.h b/gcc/ipa-prop.h index a6db8f6..27a1697 100644 --- a/gcc/ipa-prop.h +++ b/gcc/ipa-prop.h @@ -587,7 +587,6 @@ tree ipa_get_indirect_edge_target (struct cgraph_edge *ie, 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. */ diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c index 235846f..cbbd422 100644 --- a/gcc/tree-ssa-pre.c +++ b/gcc/tree-ssa-pre.c @@ -4314,8 +4314,6 @@ eliminate_dom_walker::before_dom_children (basic_block b) gimple_call_set_fndecl (stmt, fn); gimple_set_modified (stmt, true); } - else - gcc_assert (!ipa_intraprocedural_devirtualization (stmt)); } } |