+2007-11-02 Diego Novillo <dnovillo@google.com>
+
+ * langhooks.h (struct lang_hooks_for_callgraph): Remove third
+ argument from function pointer ANALYZE_EXPR. Update all
+ users.
+ * cgraph.c (debug_cgraph_node): New.
+ (debug_cgraph): New.
+
2007-11-02 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/33648
const char * const cgraph_availability_names[] =
{"unset", "not_available", "overwrittable", "available", "local"};
-/* Dump given cgraph node. */
+
+/* Dump call graph node NODE to file F. */
+
void
dump_cgraph_node (FILE *f, struct cgraph_node *node)
{
fprintf (f, "\n");
}
-/* Dump the callgraph. */
+
+/* Dump call graph node NODE to stderr. */
+
+void
+debug_cgraph_node (struct cgraph_node *node)
+{
+ dump_cgraph_node (stderr, node);
+}
+
+
+/* Dump the callgraph to file F. */
void
dump_cgraph (FILE *f)
dump_cgraph_node (f, node);
}
+
+/* Dump the call graph to stderr. */
+
+void
+debug_cgraph (void)
+{
+ dump_cgraph (stderr);
+}
+
+
/* Set the DECL_ASSEMBLER_NAME and update cgraph hashtables. */
+
void
change_decl_assembler_name (tree decl, tree name)
{
/* In cgraph.c */
void dump_cgraph (FILE *);
+void debug_cgraph (void);
void dump_cgraph_node (FILE *, struct cgraph_node *);
+void debug_cgraph_node (struct cgraph_node *);
void cgraph_insert_node_to_hashtable (struct cgraph_node *node);
void cgraph_remove_edge (struct cgraph_edge *);
void cgraph_remove_node (struct cgraph_node *);
Called via walk_tree: TP is pointer to tree to be examined. */
static tree
-record_reference (tree *tp, int *walk_subtrees, void *data)
+record_reference (tree *tp, int *walk_subtrees, void *data ATTRIBUTE_UNUSED)
{
tree t = *tp;
{
varpool_mark_needed_node (varpool_node (t));
if (lang_hooks.callgraph.analyze_expr)
- return lang_hooks.callgraph.analyze_expr (tp, walk_subtrees,
- data);
+ return lang_hooks.callgraph.analyze_expr (tp, walk_subtrees);
}
break;
}
if ((unsigned int) TREE_CODE (t) >= LAST_AND_UNUSED_TREE_CODE)
- return lang_hooks.callgraph.analyze_expr (tp, walk_subtrees, data);
+ return lang_hooks.callgraph.analyze_expr (tp, walk_subtrees);
break;
}
extern tree get_guard (tree);
extern tree get_guard_cond (tree);
extern tree set_guard (tree);
-extern tree cxx_callgraph_analyze_expr (tree *, int *, tree);
+extern tree cxx_callgraph_analyze_expr (tree *, int *);
extern void mark_needed (tree);
extern bool decl_needed_p (tree);
extern void note_vague_linkage_fn (tree);
Here we must deal with member pointers. */
tree
-cxx_callgraph_analyze_expr (tree *tp, int *walk_subtrees ATTRIBUTE_UNUSED,
- tree from ATTRIBUTE_UNUSED)
+cxx_callgraph_analyze_expr (tree *tp, int *walk_subtrees ATTRIBUTE_UNUSED)
{
tree t = *tp;
/* Declarations of default tree inlining hooks. */
extern void lhd_initialize_diagnostics (struct diagnostic_context *);
-extern tree lhd_callgraph_analyze_expr (tree *, int *, tree);
+extern tree lhd_callgraph_analyze_expr (tree *, int *);
/* Declarations for tree gimplification hooks. */
tree
lhd_callgraph_analyze_expr (tree *tp ATTRIBUTE_UNUSED,
- int *walk_subtrees ATTRIBUTE_UNUSED,
- tree decl ATTRIBUTE_UNUSED)
+ int *walk_subtrees ATTRIBUTE_UNUSED)
{
return NULL;
}
{
/* The node passed is a language-specific tree node. If its contents
are relevant to use of other declarations, mark them. */
- tree (*analyze_expr) (tree *, int *, tree);
+ tree (*analyze_expr) (tree *, int *);
- /* Emmit thunks associated to function. */
+ /* Emit thunks associated to function. */
void (*emit_associated_thunks) (tree);
};