* @file
* @brief Write vcg representation of firm to file.
* @author Martin Trapp, Christian Schaefer, Goetz Lindenmaier, Hubert Schmidt
- * @version $Id$
- * @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
#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.
* at @p mime_type.
* The file is stored into the directory specified by #ir_set_dump_path
*
- * @param func Dumper. Usualle one of #dump_callgraph, #dump_typegraph,
+ * @param func Dumper. Usually one of #dump_callgraph, #dump_typegraph,
* #dump_class_hierarchy, #dump_types_as_text,
* #dump_globals_as_text
* @param suffix Suffix to append to the 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.
*/
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);
* 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. */
FIRM_API void set_dump_node_vcgattr_hook(dump_node_vcgattr_func hook);