remove the unused 'ident' type, remove tpo_max add tpo_last
[libfirm] / include / libfirm / irdump.h
index 3b33984..45de03e 100644 (file)
@@ -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 <stdio.h>
+
+#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<suffix>.vcg.
+/** Dumps all graphs in interprocedural view to a file named All_graphs\<suffix\>.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_<nr>.vcg.  nr is a unique number
+ * 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);
+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"<suffix>".vcg".
+ * Dumps the callgraph to a file "Callgraph"\<suffix\>".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
- * <name of irg><suffix>-looptree.vcg
+ * \<name of irg\>\<suffix\>-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_<loop_nr><suffix>.vcg.
+ * The name of the file is loop_<loop_nr>\<suffix\>.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<suffix>.vcg".
+ * The filename is "Callgraph_looptree\<suffix\>.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
- *  <suffix>.txt.
+ *  \<suffix\>.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 <suffix>-types.txt.
+ *  if the program name is not set, appended by \<suffix\>-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 <suffix>-globals.txt.
+ * if the program name is not set, appended by \<suffix\>-globals.txt.
  * For verbosity see the documentation of the verbosity flags above.
  */
 void dump_globals_as_text(unsigned verbosity, const char *suffix);