GCC Middle and Back End API Reference
Main Page
Namespaces
Data Structures
Files
File List
Globals
tree-dump.h
Go to the documentation of this file.
1
/* Tree-dumping functionality for intermediate representation.
2
Copyright (C) 1999-2013 Free Software Foundation, Inc.
3
Written by Mark Mitchell <mark@codesourcery.com>
4
5
This file is part of GCC.
6
7
GCC is free software; you can redistribute it and/or modify it under
8
the terms of the GNU General Public License as published by the Free
9
Software Foundation; either version 3, or (at your option) any later
10
version.
11
12
GCC is distributed in the hope that it will be useful, but WITHOUT ANY
13
WARRANTY; without even the implied warranty of MERCHANTABILITY or
14
FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
15
for more details.
16
17
You should have received a copy of the GNU General Public License
18
along with GCC; see the file COPYING3. If not see
19
<http://www.gnu.org/licenses/>. */
20
21
#ifndef GCC_TREE_DUMP_H
22
#define GCC_TREE_DUMP_H
23
24
#include "splay-tree.h"
25
#include "
dumpfile.h
"
26
27
typedef
struct
dump_info
*
dump_info_p
;
28
29
/* Flags used with queue functions. */
30
#define DUMP_NONE 0
31
#define DUMP_BINFO 1
32
33
/* Information about a node to be dumped. */
34
35
typedef
struct
dump_node_info
36
{
37
/* The index for the node. */
38
unsigned
int
index
;
39
/* Nonzero if the node is a binfo. */
40
unsigned
int
binfo_p
: 1;
41
} *
dump_node_info_p
;
42
43
/* A dump_queue is a link in the queue of things to be dumped. */
44
45
typedef
struct
dump_queue
46
{
47
/* The queued tree node. */
48
splay_tree_node
node
;
49
/* The next node in the queue. */
50
struct
dump_queue
*
next
;
51
} *
dump_queue_p
;
52
53
/* A dump_info gives information about how we should perform the dump
54
and about the current state of the dump. */
55
56
struct
dump_info
57
{
58
/* The stream on which to dump the information. */
59
FILE *
stream
;
60
/* The original node. */
61
const_tree
node
;
62
/* User flags. */
63
int
flags
;
64
/* The next unused node index. */
65
unsigned
int
index
;
66
/* The next column. */
67
unsigned
int
column
;
68
/* The first node in the queue of nodes to be written out. */
69
dump_queue_p
queue
;
70
/* The last node in the queue. */
71
dump_queue_p
queue_end
;
72
/* Free queue nodes. */
73
dump_queue_p
free_list
;
74
/* The tree nodes which we have already written out. The
75
keys are the addresses of the nodes; the values are the integer
76
indices we assigned them. */
77
splay_tree
nodes
;
78
};
79
80
/* Dump the CHILD and its children. */
81
#define dump_child(field, child) \
82
queue_and_dump_index (di, field, child, DUMP_NONE)
83
84
extern
void
dump_pointer
(dump_info_p,
const
char
*,
void
*);
85
extern
void
dump_int
(dump_info_p,
const
char
*,
int
);
86
extern
void
dump_string
(dump_info_p,
const
char
*);
87
extern
void
dump_string_field
(dump_info_p,
const
char
*,
const
char
*);
88
extern
void
queue_and_dump_index
(dump_info_p,
const
char
*,
const_tree
,
int
);
89
extern
void
queue_and_dump_type
(dump_info_p,
const_tree
);
90
extern
void
dump_function
(
int
,
tree
);
91
extern
int
dump_flag
(dump_info_p,
int
,
const_tree
);
92
93
/* In tree-cfg.c */
94
extern
void
dump_function_to_file
(
tree
, FILE *,
int
);
95
96
#endif
/* ! GCC_TREE_DUMP_H */
gcc
tree-dump.h
Generated by
1.8.1.1