13#ifndef FIRM_IR_IRDUMP_H
14#define FIRM_IR_IRDUMP_H
17#include "firm_types.h"
382 const
char *orientation);
int(* dump_node_vcgattr_func)(FILE *out, const ir_node *node, const ir_node *local)
This hook is called to dump the vcg attributes of a node to a file.
void dump_callgraph(FILE *out)
Dump the call graph.
void dump_globals_as_text(FILE *out)
Dumps all global variables as text.
void dump_entity_to_file(FILE *out, const ir_entity *entity)
Write the entity and all its attributes to the passed file.
void set_dump_edge_vcgattr_hook(dump_edge_vcgattr_func hook)
Sets the edge_vcgattr hook.
dump_node_edge_func get_dump_node_edge_hook(void)
Returns the additional edge dump hook.
void dump_types_as_text(FILE *out)
Dump type information as text.
void dump_class_hierarchy(FILE *out)
Dumps the class hierarchy with or without entities.
void dump_ir_graph_file(FILE *out, ir_graph *graph)
Dumps all Firm nodes of a single graph for a single procedure in standard xvcg format.
void dump_node_info_cb_t(void *data, FILE *out, const ir_node *n)
A node info dumper callback.
ir_dump_flags_t ir_get_dump_flags(void)
return currently set dump flags
void ir_set_dump_verbosity(ir_dump_verbosity_t verbosity)
override currently set text dump flags with new ones
ir_dump_verbosity_t
Verbosity for text dumpers.
void dump_typegraph(FILE *out)
Dumps all type information.
const char * ir_get_dump_filter(void)
Returns the substring filter set with ir_set_dump_filter.
int(* dump_edge_vcgattr_func)(FILE *out, const ir_node *node, int to)
This hook is called to dump the vcg attributes of an edge to a file.
void(* dump_node_edge_func)(FILE *out, const ir_node *node)
This hook allows dumping of additional edges (it is called outside a node: {} environment)
void dump_all_ir_graphs(const char *suffix)
A walker that calls a dumper for each graph in the program.
void set_dump_node_edge_hook(dump_node_edge_func func)
Sets the hook to be called to dump additional edges to a node.
void dump_cfg(FILE *out, ir_graph *graph)
Dump the control flow graph of a procedure.
void set_dump_node_vcgattr_hook(dump_node_vcgattr_func hook)
Sets the node_vcgattr hook.
ir_dump_flags_t
A bitset indicating various options that affect what information is dumped and how exactly it is dump...
void dump_callgraph_loop_tree(FILE *out)
Dumps the loop tree over the call graph.
void(* ir_prog_dump_func)(FILE *out)
type for dumpers that dump information about the whole program
dump_node_edge_func get_dump_block_edge_hook(void)
Returns the additional block edge dump hook.
void set_dump_block_edge_hook(dump_node_edge_func func)
Sets the hook to be called to dump additional edges to a block.
void ir_set_dump_filter(const char *name)
Sets a prefix filter for output functions.
void(* ir_graph_dump_func)(FILE *out, ir_graph *graph)
type for graph dumpers
void ir_add_dump_flags(ir_dump_flags_t flags)
add flags to the currently set dump flags
void dump_type_to_file(FILE *out, const ir_type *type)
Write the type and all its attributes to the file passed.
void dump_ir_graph_ext(ir_graph_dump_func func, ir_graph *graph, const char *suffix)
Convenience interface for dumping graphs.
hook_entry_t * dump_add_node_info_callback(dump_node_info_cb_t *cb, void *data)
Adds a new node info dumper callback.
void dump_ir_graph(ir_graph *graph, const char *suffix)
Convenience interface for dumping a graph as vcg file.
void ir_remove_dump_flags(ir_dump_flags_t flags)
disable certain dump flags
void dump_loop(FILE *out, ir_loop *loop)
Dumps the firm nodes in the sub-loop-tree of loop to a vcg file.
ir_dump_verbosity_t ir_get_dump_verbosity(void)
return currently set text dump flags
void dump_ir_prog_ext(ir_prog_dump_func func, const char *suffix)
Convenience interface for dumping the whole compilation-unit/program.
void dump_graph_as_text(FILE *out, const ir_graph *graph)
Write the graph and all its attributes to the file passed.
void ir_set_dump_flags(ir_dump_flags_t flags)
override currently set dump flags with new ones
void dump_remove_node_info_callback(hook_entry_t *handle)
Removes a previously added info dumper callback.
void ir_set_dump_path(const char *path)
Specifies output path for the dump_ir_graph function.
void dump_loop_tree(FILE *out, ir_graph *graph)
Dump a standalone loop tree, which contains the loop nodes and the firm nodes belonging to one loop p...
@ dump_verbosity_nostatic
Dump types and dynamic allocated fields (like a type declaration).
@ dump_verbosity_entconsts
Dump entity constants.
@ dump_verbosity_max
Turn everything on.
@ dump_verbosity_accessStats
Dump entity access statistics.
@ dump_verbosity_typeattrs
Dump all type attributes.
@ dump_verbosity_fields
Dump types and fields (like a type declaration).
@ dump_verbosity_methods
Dump types and methods (like a type declaration).
@ dump_verbosity_onlynames
Only dump names.
@ dump_verbosity_entattrs
Dump all entity attributes.
@ ir_dump_flag_loops
If set the dumper dumps loop nodes and edges from these nodes to the contained ir nodes.
@ ir_dump_flag_entities_in_hierarchy
dump entities in class hierarchies
@ ir_dump_flag_no_entity_values
turns of dumping of constant entity values in typegraphs
@ ir_dump_flag_dominance
if set dumps edges from blocks to their immediate dominator
@ ir_dump_flag_ld_names
dumps ld_names of entities instead of their names
@ ir_dump_flag_show_marks
dumps marked blocks with an asterisk in the label
@ ir_dump_flag_out_edges
dump out edges
@ ir_dump_flag_consts_local
If set constants will be replicated for every use.
@ ir_dump_flag_idx_label
if set node idx will be added to node labels
@ ir_dump_flag_keepalive_edges
show keepalive edges from the end node
@ ir_dump_flag_all_anchors
dump all anchor nodes, even the unused ones
@ ir_dump_flag_with_typegraph
dump (parts of) typegraph along with nodes
@ ir_dump_flag_blocks_as_subgraphs
dump basic blocks as subgraphs which contain the nodes in the block
@ ir_dump_flag_back_edges
if set (and backedge info is computed) dump backedges
@ ir_dump_flag_number_label
if set node number will be added to node labels
@ ir_dump_flag_disable_edge_labels
Sets the vcg flag "display_edge_labels" to no.
@ ir_dump_flag_iredges
dump backedges from iredges.h
void dump_end_block_subgraph(FILE *out, const ir_node *block)
Prints the commands to end a vcg subgraph of firm block block to out.
void dump_begin_block_subgraph(FILE *out, const ir_node *block)
Prints the commands to begin of a new vcg subgraph intended for firm block block to out.
void dump_ir_data_edges(FILE *out, const ir_node *node)
Prints vcg edges for firm graph node node to out.
void dump_node(FILE *out, const ir_node *node)
Prints vcg node for a single firm graph node node to out.
void dump_blocks_as_subgraphs(FILE *out, ir_graph *irg)
Prints vcg nodes+edges for all node in firm graph irg to out.
void dump_vcg_header(FILE *out, const char *name, const char *layout, const char *orientation)
Prints the typical header used in libfirm .vcg files to file out.
void print_nodeid(FILE *out, const ir_node *node)
Prints the vcg identifier for firm graph node node to out.
void dump_vcg_footer(FILE *out)
Prints the typical footer used in libfirm .vcg files to file out.
void dump_block_edges(FILE *out, const ir_node *block)
Prints vcg edges for predecessors of firm block block to out.
struct ir_graph ir_graph
Procedure Graph.
struct ir_loop ir_loop
Loop.
struct ir_node ir_node
Procedure Graph Node.
struct ir_entity ir_entity
Entity.
struct ir_type ir_type
Type.