* If this function returns zero, the default attributes are added, else
* removed.
*/
-typedef int (*DUMP_NODE_VCGATTR_FUNC)(FILE *F, ir_node *n);
+typedef int (*DUMP_NODE_VCGATTR_FUNC)(FILE *F, ir_node *node, ir_node *local);
/** Set the node_vcgattr hook. */
void set_dump_node_vcgattr_hook(DUMP_NODE_VCGATTR_FUNC hook);
*/
void dump_cfg (ir_graph *irg, const char *suffix);
+/** Dump a node and its predecessors forming a subgraph to a vcg file.
+ *
+ * @param root The node serving as root for the subgraph.
+ * @param depth Dump nodes on paths starting at root with length depth.
+ * @param suffix A suffix for the file name.
+ *
+ * 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_<nr>.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);
/* **************************************************************************** */
/* CALLGRAPH DUMPERS */
/** 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.
/** Write the type and all its attributes to the file passed.
* */
-void dump_type_to_file (FILE *f, type *tp, unsigned verbosity);
+void dump_type_to_file (FILE *f, type *tp, dump_verbosity verbosity);
/** Write the type and all its attributes to stdout.
* */
/** Sets the vcg flag "display_edge_labels" to no.
*
* This is necessary as xvcg and aisee both fail to display graphs
- * with self-edges if these edges have labes.
+ * with self-edges if these edges have lables.
*/
void turn_off_edge_labels(void);
/** Turns off dumping the values of constant entities. Makes type graphs
* better readable.
*/
-void turn_off_constant_entity_values(void);
+void dump_constant_entity_values(bool b);
/** Turns on dumping the edges from the End node to nodes to be kept
* alive.
*
* To test the consistency of the out datastructure.
*/
-void dump_out_edges(void);
+void dump_out_edges(bool b);
/** If this flag is set the dumper dumps edges to immediate dominator in cfg.
*/
-void dump_dominator_information(void);
+void dump_dominator_information(bool b);
/** If this flag is set the dumper dumps loop nodes and edges from
* these nodes to the contained ir nodes.
*
- * Can be turned off with dont_dump_loop_information().
* If the loops are interprocedural nodes can be missing.
*/
-void dump_loop_information(void);
-
-/**
- * @see dump_loop_information()
- */
-void dont_dump_loop_information(void);
+void dump_loop_information(bool b);
/** If set and backedge info is computed, backedges are dumped dashed
* and as vcg 'backedge' construct.