X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=include%2Flibfirm%2Firdump.h;h=45de03e270368341ed9faf0690281327306655a6;hb=aee537d3a7765763d1d5040c9a16faf3396133b9;hp=3b33984576d72398c3ffd8cbe99d74316fe95b32;hpb=bc6a704a4833b7f9462546f15d11a75ec301d037;p=libfirm diff --git a/include/libfirm/irdump.h b/include/libfirm/irdump.h index 3b3398457..45de03e27 100644 --- a/include/libfirm/irdump.h +++ b/include/libfirm/irdump.h @@ -22,7 +22,7 @@ * @brief Write vcg representation of firm to file. * @author Martin Trapp, Christian Schaefer, Goetz Lindenmaier, Hubert Schmidt * @version $Id$ - * @summary + * @brief * Dump routines for the ir graph and all type information. * * The dump format of most functions is vcg. This is a text based graph @@ -41,9 +41,9 @@ #ifndef FIRM_IR_IRDUMP_H #define FIRM_IR_IRDUMP_H -#include "irnode.h" -#include "irgraph.h" -#include "irloop.h" +#include + +#include "firm_types.h" /** * Symbolic names for the different dumping colors. @@ -170,8 +170,8 @@ DUMP_NODE_EDGE_FUNC get_dump_block_edge_hook(void); * * @see turn_off_edge_labels() */ -void dump_ir_graph (ir_graph *irg, const char *suffix); -void dump_ir_graph_file (ir_graph *irg, FILE *out); +void dump_ir_graph(ir_graph *irg, const char *suffix); +void dump_ir_graph_file(ir_graph *irg, FILE *out); /** Dump a firm graph without explicit block nodes. * @@ -190,8 +190,8 @@ void dump_ir_graph_file (ir_graph *irg, FILE *out); * * @see turn_off_edge_labels() */ -void dump_ir_block_graph (ir_graph *irg, const char *suffix); -void dump_ir_block_graph_file (ir_graph *irg, FILE *out); +void dump_ir_block_graph(ir_graph *irg, const char *suffix); +void dump_ir_block_graph_file(ir_graph *irg, FILE *out); /** Dump a firm graph without explicit block nodes but grouped in extended blocks. * @@ -209,10 +209,10 @@ void dump_ir_block_graph_file (ir_graph *irg, FILE *out); * * @see turn_off_edge_labels() */ -void dump_ir_extblock_graph (ir_graph *irg, const char *suffix); -void dump_ir_extblock_graph_file (ir_graph *irg, FILE *out); +void dump_ir_extblock_graph(ir_graph *irg, const char *suffix); +void dump_ir_extblock_graph_file(ir_graph *irg, FILE *out); -/** Dumps all graphs in interprocedural view to a file named All_graphs.vcg. +/** Dumps all graphs in interprocedural view to a file named All_graphs\.vcg. * * @param suffix A suffix for the file name. */ @@ -233,8 +233,8 @@ void dump_all_cg_block_graph(const char *suffix); * * @see turn_off_edge_labels() */ -void dump_ir_graph_w_types (ir_graph *irg, const char *suffix); -void dump_ir_graph_w_types_file (ir_graph *irg, FILE *out); +void dump_ir_graph_w_types(ir_graph *irg, const char *suffix); +void dump_ir_graph_w_types_file(ir_graph *irg, FILE *out); /** Dumps a firm graph and all the type information needed for Calls, * Sels, ... in this graph. @@ -252,7 +252,7 @@ void dump_ir_graph_w_types_file (ir_graph *irg, FILE *out); * * @see turn_off_edge_labels() */ -void dump_ir_block_graph_w_types (ir_graph *irg, const char *suffix); +void dump_ir_block_graph_w_types(ir_graph *irg, const char *suffix); /** The type of a dump function that is called for each graph. * @@ -280,8 +280,19 @@ typedef void dump_graph_func(ir_graph *irg, const char *suffix); * * @see turn_off_edge_labels() */ -void dump_all_ir_graphs (dump_graph_func *dump_graph, const char *suffix); +void dump_all_ir_graphs(dump_graph_func *dump_graph, const char *suffix); +/** + * Creates an ir_prog pass for dump_all_ir_graphs(). + * + * @param name the name of this pass or NULL + * @param dump_graph The dumper to be used for dumping. + * @param suffix A suffix for the file name. + * + * @return the newly created ir_prog pass + */ +ir_prog_pass_t *dump_all_ir_graph_pass( + const char *name, dump_graph_func *dump_graph, const char *suffix); /** * Dump the control flow graph of a procedure. @@ -299,7 +310,7 @@ void dump_all_ir_graphs (dump_graph_func *dump_graph, const char *suffix); * * @see turn_off_edge_labels() */ -void dump_cfg (ir_graph *irg, const char *suffix); +void dump_cfg(ir_graph *irg, const char *suffix); /** * Dump a node and its predecessors forming a subgraph to a vcg file. @@ -310,13 +321,13 @@ void dump_cfg (ir_graph *irg, const char *suffix); * * Dumps the graph to a file. The file name is constructed from the * name of the entity describing the procedure the passed node is - * in, suffix and the ending -subg_.vcg. nr is a unique number + * in, suffix and the ending -subg_\.vcg. nr is a unique number * for each graph dumped. Eventually overwrites existing files. * * @return * A file containing the subgraph in vcg format. */ -void dump_subgraph (ir_node *root, int depth, const char *suffix); +void dump_subgraph(ir_node *root, int depth, const char *suffix); /* **************************************************************************** */ /* CALLGRAPH DUMPERS */ @@ -325,7 +336,7 @@ void dump_subgraph (ir_node *root, int depth, const char *suffix); /** Dump the call graph. * - * Dumps the callgraph to a file "Callgraph"".vcg". + * Dumps the callgraph to a file "Callgraph"\".vcg". * * @param suffix A suffix for the file name. * @@ -353,7 +364,7 @@ void dump_callgraph(const char *suffix); * * @see turn_off_edge_labels() */ -void dump_type_graph (ir_graph *irg, const char *suffix); +void dump_type_graph(ir_graph *irg, const char *suffix); /** * Dumps all type information. @@ -370,7 +381,7 @@ void dump_type_graph (ir_graph *irg, const char *suffix); * * @see turn_off_edge_labels() */ -void dump_all_types (const char *suffix); +void dump_all_types(const char *suffix); /** * Dumps the class hierarchy with or without entities. @@ -389,7 +400,7 @@ void dump_all_types (const char *suffix); * is dumped along with the entities. * Dumps to a file class_hierarchy.vcg */ -void dump_class_hierarchy (int entities, const char *suffix); +void dump_class_hierarchy(int entities, const char *suffix); /* **************************************************************************** */ /* LOOPTREE DUMPERS */ @@ -398,7 +409,7 @@ void dump_class_hierarchy (int entities, const char *suffix); /** * Dump a standalone loop tree, which contains the loop nodes and the firm nodes * belonging to one loop packed together in one subgraph. Dumps to file - * -looptree.vcg + * \\-looptree.vcg * Turns on edge labels by default. * * Implementing this dumper was stimulated by Florian Liekwegs similar dumper. @@ -411,17 +422,17 @@ void dump_loop_tree(ir_graph *irg, const char *suffix); /** Dumps the firm nodes in the sub-loop-tree of loop to a graph. * * Dumps the loop nodes if dump_loop_information() is set. - * The name of the file is loop_.vcg. + * The name of the file is loop_\.vcg. * * @param l Dump the loop tree for this loop. * @param suffix A suffix for the file name. */ -void dump_loop (ir_loop *l, const char *suffix); +void dump_loop(ir_loop *l, const char *suffix); /** Dumps the loop tree over the call graph. * * See for yourself what you can use this for. - * The filename is "Callgraph_looptree.vcg". + * The filename is "Callgraph_looptree\.vcg". * * @param suffix A suffix for the file name. */ @@ -435,11 +446,11 @@ void dump_callgraph_loop_tree(const char *suffix); /** Write the irnode and all its attributes to the file passed. * */ -int dump_irnode_to_file (FILE *f, ir_node *n); +int dump_irnode_to_file(FILE *f, ir_node *n); /** Write the irnode and all its attributes to stdout. * */ -void dump_irnode (ir_node *n); +void dump_irnode(ir_node *n); /** Write the graph and all its attributes to the file passed. * Does not write the nodes. @@ -459,7 +470,7 @@ void dump_graph(ir_graph *g); * but the relations between the nodes only implicitly. * * The file name is the graph name (get_entity_name()), appended by - * .txt. + * \.txt. */ void dump_graph_as_text(ir_graph *irg, const char *suffix); @@ -507,20 +518,20 @@ typedef enum { /** Write the entity and all its attributes to the passed file. * */ -void dump_entity_to_file (FILE *F, ir_entity *ent, unsigned verbosity); +void dump_entity_to_file(FILE *F, ir_entity *ent, unsigned verbosity); /** Write the entity and all its attributes to the stdout. * * Calls dump_entity_to_file(). */ -void dump_entity (ir_entity *ent); +void dump_entity(ir_entity *ent); /** Write the type and all its attributes to the file passed. * */ -void dump_type_to_file (FILE *f, ir_type *tp, dump_verbosity verbosity); +void dump_type_to_file(FILE *f, ir_type *tp, dump_verbosity verbosity); /** Write the type and all its attributes to stdout. * */ -void dump_type (ir_type *tp); +void dump_type(ir_type *tp); /** Dump type information as text. @@ -532,7 +543,7 @@ void dump_type (ir_type *tp); * the global type nor frame types or the like. * * The file name is the program name (get_irp_name()), or 'TextTypes' - * if the program name is not set, appended by -types.txt. + * if the program name is not set, appended by \-types.txt. * For verbosity see the documentation of the verbosity flags above. */ void dump_types_as_text(unsigned verbosity, const char *suffix); @@ -544,7 +555,7 @@ void dump_types_as_text(unsigned verbosity, const char *suffix); * Dumps a text representation of the entities in the global type. * * The file name is the program name (get_irp_name()), or 'TextTypes' - * if the program name is not set, appended by -globals.txt. + * if the program name is not set, appended by \-globals.txt. * For verbosity see the documentation of the verbosity flags above. */ void dump_globals_as_text(unsigned verbosity, const char *suffix);