This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Drop old intraprocedural ipa-prop devirtualization code


Hi,
ipa_intraprocedural_devirtualization was for few weeks used only to check that
new get_dynamic_type code can handle all cases old detect_type_change did.
Since all reported issues are fixed now, I removed the code.

lto-profiledbootstrapped/regtested x86_64-linux

	* 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.
Index: ipa-prop.c
===================================================================
--- ipa-prop.c	(revision 215614)
+++ ipa-prop.c	(working copy)
@@ -2566,36 +2566,6 @@ ipa_analyze_node (struct cgraph_node *no
   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.  */
Index: ipa-prop.h
===================================================================
--- ipa-prop.h	(revision 215614)
+++ ipa-prop.h	(working copy)
@@ -587,7 +587,6 @@ tree ipa_get_indirect_edge_target (struc
 				   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.  */
Index: tree-ssa-pre.c
===================================================================
--- tree-ssa-pre.c	(revision 215614)
+++ tree-ssa-pre.c	(working copy)
@@ -4314,8 +4314,6 @@ eliminate_dom_walker::before_dom_childre
 		  gimple_call_set_fndecl (stmt, fn);
 		  gimple_set_modified (stmt, true);
 		}
-	      else
-	        gcc_assert (!ipa_intraprocedural_devirtualization (stmt));
 	    }
 	}
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]