X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=include%2Flibfirm%2Firdump.h;h=51b2bc4bde2edaff2ce49e30afeb70486f103ecb;hb=cbc9fdd03cead0cd8d43142ae718d0460ebdfe5f;hp=b3cf07c252fe6c5cdd2ec4294e6afd54f47e370d;hpb=f8cc15664f571aa7ef89d6f6bc8d5bd2b8ca7d53;p=libfirm diff --git a/include/libfirm/irdump.h b/include/libfirm/irdump.h index b3cf07c25..51b2bc4bd 100644 --- a/include/libfirm/irdump.h +++ b/include/libfirm/irdump.h @@ -21,18 +21,8 @@ * @file * @brief Write vcg representation of firm to file. * @author Martin Trapp, Christian Schaefer, Goetz Lindenmaier, Hubert Schmidt - * @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 - * representation. Some use the original format, - * but most generate an extended format that is only read by some special - * versions of xvcg or by the comercialized version now calles aiSee. - * A test version of aiSee is available at - * http://www.absint.de/aisee/download/index.htm. + * @brief Dump routines for the ir graph and all type information. * - * We have developed an own advanced viewer called ycomp: - * http://www.info.uni-karlsruhe.de/software/ycomp/ */ #ifndef FIRM_IR_IRDUMP_H #define FIRM_IR_IRDUMP_H @@ -42,8 +32,24 @@ #include "firm_types.h" #include "begin.h" -/** @defgroup convenience_dumper Convenience interface for dumpers */ -/*@{*/ +/** @defgroup ir_dump Visualisation + * + * Dumps information so it can be visualised. The dump format of most functions + * is vcg. This is a text based graph representation. Some use the original + * format, but most generate an extended format that is only read by some + * special versions of xvcg or by the commercialized version now calles aiSee. + * + * A test version of aiSee is available at + * http://www.absint.de/aisee/download/index.htm. + * + * We have developed an own advanced viewer called ycomp: + * http://www.info.uni-karlsruhe.de/software/ycomp/ + *@{ + */ + +/** @defgroup convenience Convenience Interface + * @{ + */ /** * Convenience interface for dumping a graph as vcg file. @@ -105,7 +111,7 @@ FIRM_API void dump_all_ir_graphs(const char *suffix); FIRM_API void ir_set_dump_path(const char *path); /** - * Set a prefix filter for output functions. + * Sets a prefix filter for output functions. * * All graph dumpers check this name. If the name is != "" and * not a prefix of the graph to be dumped, the dumper does not @@ -134,15 +140,6 @@ FIRM_API ir_prog_pass_t *dump_all_ir_graph_pass(const char *name, /*@}*/ -/** - * @defgroup dumper Dump information to file - * This is the low-level interface for dumping information as text files - * and xvcg graphs. - * Normally you should use the convenience interface @ref convenience_dumper - * instead of the functions in this group. - */ -/*@{*/ - /** * Dumps all Firm nodes of a single graph for a single procedure in * standard xvcg format. @@ -235,9 +232,6 @@ FIRM_API void dump_globals_as_text(FILE *out); */ FIRM_API void dump_loop(FILE *out, ir_loop *loop); -/** Write the irnode and all its attributes to the file passed. */ -FIRM_API void dump_irnode_to_file(FILE *out, ir_node *node); - /** Write the graph and all its attributes to the file passed. * Does not write the nodes. */ FIRM_API void dump_graph_as_text(FILE *out, ir_graph *graph); @@ -298,8 +292,6 @@ FIRM_API ir_dump_verbosity_t ir_get_dump_verbosity(void); typedef enum { /** dump basic blocks as subgraphs which contain the nodes in the block */ ir_dump_flag_blocks_as_subgraphs = 1U << 0, - /** display blocks in extended basic grouped inside a subgraph */ - ir_dump_flag_group_extbb = 1U << 1, /** dump (parts of) typegraph along with nodes */ ir_dump_flag_with_typegraph = 1U << 2, /** Sets the vcg flag "display_edge_labels" to no. @@ -359,42 +351,46 @@ FIRM_API ir_dump_flags_t ir_get_dump_flags(void); * If this function returns zero, the default attributes are added, else * removed. */ -typedef int (*dump_node_vcgattr_func)(FILE *out, ir_node *node, ir_node *local); +typedef 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 an edge to a file. * If this function returns zero, the default attributes are added, else * removed. */ -typedef int (*dump_edge_vcgattr_func)(FILE *out, ir_node *node, int to); +typedef int (*dump_edge_vcgattr_func)(FILE *out, const ir_node *node, int to); -typedef void (*dump_node_edge_func)(FILE *out, ir_node *node); +/** + * This hook allows dumping of additional edges (it is called outside a node: {} + * environment) + */ +typedef void (*dump_node_edge_func)(FILE *out, const ir_node *node); -/** Set the node_vcgattr hook. */ +/** Sets the node_vcgattr hook. */ FIRM_API void set_dump_node_vcgattr_hook(dump_node_vcgattr_func hook); -/** Set the edge_vcgattr hook. */ +/** Sets the edge_vcgattr hook. */ FIRM_API void set_dump_edge_vcgattr_hook(dump_edge_vcgattr_func hook); /** - * Set the hook to be called to dump additional edges to a node. + * Sets the hook to be called to dump additional edges to a node. * @param func The hook to be called. */ FIRM_API void set_dump_node_edge_hook(dump_node_edge_func func); /** - * Get the additional edge dump hook. + * Returns the additional edge dump hook. * @return The current additional edge dump hook.] */ FIRM_API dump_node_edge_func get_dump_node_edge_hook(void); /** - * Set the hook to be called to dump additional edges to a block. + * Sets the hook to be called to dump additional edges to a block. * @param func The hook to be called. */ FIRM_API void set_dump_block_edge_hook(dump_node_edge_func func); /** - * Get the additional block edge dump hook. + * Returns the additional block edge dump hook. * @return The current additional block edge dump hook. */ FIRM_API dump_node_edge_func get_dump_block_edge_hook(void);