Exemplo n.º 1
0
static bool
can_remove_node_now_p (struct cgraph_node *node, struct cgraph_edge *e)
{
  struct cgraph_node *next;
  if (!can_remove_node_now_p_1 (node))
    return false;

  /* When we see same comdat group, we need to be sure that all
     items can be removed.  */
  if (!node->symbol.same_comdat_group)
    return true;
  for (next = cgraph (node->symbol.same_comdat_group);
       next != node; next = cgraph (next->symbol.same_comdat_group))
    if ((next->callers && next->callers != e)
	|| !can_remove_node_now_p_1 (next))
      return false;
  return true;
}
Exemplo n.º 2
0
static bool
can_remove_node_now_p_1 (struct cgraph_node *node, struct cgraph_edge *e)
{
  ipa_ref *ref;

  FOR_EACH_ALIAS (node, ref)
    {
      cgraph_node *alias = dyn_cast <cgraph_node *> (ref->referring);
      if ((alias->callers && alias->callers != e)
          || !can_remove_node_now_p_1 (alias, e))
	return false;
    }