aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/ipa-prop.c30
-rw-r--r--gcc/ipa-prop.h1
-rw-r--r--gcc/tree-ssa-pre.c2
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));
}
}