00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef GCC_TREE_DUMP_H
00023 #define GCC_TREE_DUMP_H
00024
00025 #include "splay-tree.h"
00026 #include "tree-pass.h"
00027
00028 typedef struct dump_info *dump_info_p;
00029
00030
00031 #define DUMP_NONE 0
00032 #define DUMP_BINFO 1
00033
00034
00035
00036 typedef struct dump_node_info
00037 {
00038
00039 unsigned int index;
00040
00041 unsigned int binfo_p : 1;
00042 } *dump_node_info_p;
00043
00044
00045
00046 typedef struct dump_queue
00047 {
00048
00049 splay_tree_node node;
00050
00051 struct dump_queue *next;
00052 } *dump_queue_p;
00053
00054
00055
00056
00057 struct dump_info
00058 {
00059
00060 FILE *stream;
00061
00062 tree node;
00063
00064 int flags;
00065
00066 unsigned int index;
00067
00068 unsigned int column;
00069
00070 dump_queue_p queue;
00071
00072 dump_queue_p queue_end;
00073
00074 dump_queue_p free_list;
00075
00076
00077
00078 splay_tree nodes;
00079 };
00080
00081
00082 #define dump_child(field, child) \
00083 queue_and_dump_index (di, field, child, DUMP_NONE)
00084
00085 extern void dump_pointer (dump_info_p, const char *, void *);
00086 extern void dump_int (dump_info_p, const char *, int);
00087 extern void dump_string (dump_info_p, const char *);
00088 extern void dump_string_field (dump_info_p, const char *, const char *);
00089 extern void dump_stmt (dump_info_p, tree);
00090 extern void queue_and_dump_index (dump_info_p, const char *, tree, int);
00091 extern void queue_and_dump_type (dump_info_p, tree);
00092 extern void dump_function (enum tree_dump_index, tree);
00093 extern void dump_function_to_file (tree, FILE *, int);
00094 extern void debug_function (tree, int);
00095 extern int dump_flag (dump_info_p, int, tree);
00096
00097 extern unsigned int dump_register (const char *, const char *, const char *,
00098 int, int);
00099
00100
00101 #endif