libFirm
Main Page
Related Pages
Modules
Data Structures
Files
File List
Globals
irdump.h
Go to the documentation of this file.
1
/*
2
* Copyright (C) 1995-2008 University of Karlsruhe. All right reserved.
3
*
4
* This file is part of libFirm.
5
*
6
* This file may be distributed and/or modified under the terms of the
7
* GNU General Public License version 2 as published by the Free Software
8
* Foundation and appearing in the file LICENSE.GPL included in the
9
* packaging of this file.
10
*
11
* Licensees holding valid libFirm Professional Edition licenses may use
12
* this file in accordance with the libFirm Commercial License.
13
* Agreement provided with the Software.
14
*
15
* This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
16
* WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR
17
* PURPOSE.
18
*/
19
27
#ifndef FIRM_IR_IRDUMP_H
28
#define FIRM_IR_IRDUMP_H
29
30
#include <stdio.h>
31
32
#include "
firm_types.h
"
33
#include "
begin.h
"
34
59
FIRM_API
void
dump_ir_graph
(
ir_graph
*graph,
const
char
*suffix);
60
64
typedef
void (*
ir_prog_dump_func
)(FILE *out);
65
79
FIRM_API
void
dump_ir_prog_ext
(
ir_prog_dump_func
func,
const
char
*suffix);
80
84
typedef
void (*
ir_graph_dump_func
)(FILE *out,
ir_graph
*graph);
85
98
FIRM_API
void
dump_ir_graph_ext
(
ir_graph_dump_func
func,
ir_graph
*graph,
99
const
char
*suffix);
100
106
FIRM_API
void
dump_all_ir_graphs
(
const
char
*suffix);
107
111
FIRM_API
void
ir_set_dump_path
(
const
char
*path);
112
122
FIRM_API
void
ir_set_dump_filter
(
const
char
*name);
123
125
FIRM_API
const
char
*
ir_get_dump_filter
(
void
);
126
128
FIRM_API
int
ir_should_dump
(
const
char
*name);
129
138
FIRM_API
ir_prog_pass_t
*
dump_all_ir_graph_pass
(
const
char
*name,
139
const
char
*suffix);
140
150
FIRM_API
void
dump_ir_graph_file
(FILE *out,
ir_graph
*graph);
151
160
FIRM_API
void
dump_cfg
(FILE *out,
ir_graph
*graph);
161
167
FIRM_API
void
dump_callgraph
(FILE *out);
168
177
FIRM_API
void
dump_typegraph
(FILE *out);
178
190
FIRM_API
void
dump_class_hierarchy
(FILE *out);
191
199
FIRM_API
void
dump_loop_tree
(FILE *out,
ir_graph
*graph);
200
206
FIRM_API
void
dump_callgraph_loop_tree
(FILE *out);
207
216
FIRM_API
void
dump_types_as_text
(FILE *out);
217
225
FIRM_API
void
dump_globals_as_text
(FILE *out);
226
233
FIRM_API
void
dump_loop
(FILE *out,
ir_loop
*loop);
234
237
FIRM_API
void
dump_graph_as_text
(FILE *out,
ir_graph
*graph);
238
240
FIRM_API
void
dump_entity_to_file
(FILE *out,
ir_entity
*entity);
241
243
FIRM_API
void
dump_type_to_file
(FILE *out,
ir_type
*type);
244
246
typedef
enum
{
247
dump_verbosity_onlynames
= 0x00000001,
249
dump_verbosity_fields
= 0x00000002,
250
dump_verbosity_methods
= 0x00000004,
251
dump_verbosity_nostatic
= 0x00000040,
254
dump_verbosity_typeattrs
= 0x00000008,
255
dump_verbosity_entattrs
= 0x00000010,
256
dump_verbosity_entconsts
= 0x00000020,
258
dump_verbosity_accessStats
= 0x00000100,
260
dump_verbosity_noClassTypes
= 0x00001000,
261
dump_verbosity_noStructTypes
= 0x00002000,
262
dump_verbosity_noUnionTypes
= 0x00004000,
263
dump_verbosity_noArrayTypes
= 0x00008000,
264
dump_verbosity_noPointerTypes
= 0x00010000,
265
dump_verbosity_noMethodTypes
= 0x00020000,
266
dump_verbosity_noPrimitiveTypes
= 0x00040000,
267
dump_verbosity_noEnumerationTypes
= 0x00080000,
269
dump_verbosity_onlyClassTypes
= 0x000FE000,
270
dump_verbosity_onlyStructTypes
= 0x000FD000,
271
dump_verbosity_onlyUnionTypes
= 0x000FB000,
272
dump_verbosity_onlyArrayTypes
= 0x000F7000,
273
dump_verbosity_onlyPointerTypes
= 0x000EF000,
274
dump_verbosity_onlyMethodTypes
= 0x000DF000,
275
dump_verbosity_onlyPrimitiveTypes
= 0x000BF000,
276
dump_verbosity_onlyEnumerationTypes
=0x0007F000,
278
dump_verbosity_max
= 0x4FF00FBE
279
}
ir_dump_verbosity_t
;
280
ENUM_BITSET
(
ir_dump_verbosity_t
)
281
282
283
FIRM_API
void
ir_set_dump_verbosity
(
ir_dump_verbosity_t
verbosity);
285
FIRM_API
ir_dump_verbosity_t
ir_get_dump_verbosity
(
void
);
286
292
typedef enum {
294
ir_dump_flag_blocks_as_subgraphs
= 1U << 0,
296
ir_dump_flag_with_typegraph
= 1U << 2,
300
ir_dump_flag_disable_edge_labels
= 1U << 3,
304
ir_dump_flag_consts_local
= 1U << 4,
306
ir_dump_flag_idx_label
= 1U << 5,
308
ir_dump_flag_number_label
= 1U << 6,
310
ir_dump_flag_keepalive_edges
= 1U << 7,
312
ir_dump_flag_out_edges
= 1U << 8,
314
ir_dump_flag_dominance
= 1U << 9,
317
ir_dump_flag_loops
= 1U << 10,
319
ir_dump_flag_back_edges
= 1U << 11,
321
ir_dump_flag_analysed_types
= 1U << 12,
323
ir_dump_flag_iredges
= 1U << 13,
325
ir_dump_flag_node_addresses
= 1U << 14,
327
ir_dump_flag_all_anchors
= 1U << 15,
329
ir_dump_flag_show_marks
= 1U << 16,
330
332
ir_dump_flag_no_entity_values
= 1U << 20,
334
ir_dump_flag_ld_names
= 1U << 21,
336
ir_dump_flag_entities_in_hierarchy
= 1U << 22,
337
}
ir_dump_flags_t
;
338
ENUM_BITSET
(
ir_dump_flags_t
)
339
340
341
FIRM_API
void
ir_set_dump_flags
(
ir_dump_flags_t
flags);
343
FIRM_API
void
ir_add_dump_flags
(
ir_dump_flags_t
flags);
345
FIRM_API
void
ir_remove_dump_flags
(
ir_dump_flags_t
flags);
347
FIRM_API
ir_dump_flags_t
ir_get_dump_flags
(
void
);
348
354
typedef
int
(*
dump_node_vcgattr_func
)(FILE *out, const
ir_node
*node, const
ir_node
*local);
355
361
typedef
int
(*
dump_edge_vcgattr_func
)(FILE *out, const
ir_node
*node,
int
to);
362
367
typedef
void
(*
dump_node_edge_func
)(FILE *out, const
ir_node
*node);
368
370
FIRM_API
void
set_dump_node_vcgattr_hook
(
dump_node_vcgattr_func
hook);
372
FIRM_API
void
set_dump_edge_vcgattr_hook
(
dump_edge_vcgattr_func
hook);
373
378
FIRM_API
void
set_dump_node_edge_hook
(
dump_node_edge_func
func);
379
384
FIRM_API
dump_node_edge_func
get_dump_node_edge_hook
(
void
);
385
390
FIRM_API
void
set_dump_block_edge_hook
(
dump_node_edge_func
func);
391
396
FIRM_API
dump_node_edge_func
get_dump_block_edge_hook
(
void
);
397
399
typedef
void
(
dump_node_info_cb_t
)(
void
*data, FILE *out, const
ir_node
*n);
400
413
FIRM_API
void
*
dump_add_node_info_callback
(
dump_node_info_cb_t
*cb,
void
*data);
414
421
FIRM_API
void
dump_remove_node_info_callback
(
void
*handle);
422
425
#include "end.h"
426
427
#endif
libfirm
irdump.h
Generated on Sat Nov 24 2012 19:13:48 for libFirm by
1.8.1.2