X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firdump.h;h=a1981bb907ac2943d2babe17bdf5327a81389b39;hb=8399216d8aebc713bbda04b6e3e250a1d52b20bf;hp=5c04e97268348275896441abf5eddf917e17d2be;hpb=a56ef93c2db743246b00ae06dfe33d7d0dc4ff8d;p=libfirm diff --git a/ir/ir/irdump.h b/ir/ir/irdump.h index 5c04e9726..a1981bb90 100644 --- a/ir/ir/irdump.h +++ b/ir/ir/irdump.h @@ -47,7 +47,7 @@ * 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); @@ -167,6 +167,21 @@ void dump_all_ir_graphs (dump_graph_func *dump_graph, 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. + * + * @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_.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 */ @@ -278,7 +293,7 @@ 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. @@ -350,7 +365,7 @@ void dump_entity (entity *ent); /** 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. * */ @@ -389,7 +404,7 @@ void only_dump_method_with_name(ident *name); /** 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); @@ -412,7 +427,7 @@ bool get_opt_dump_const_local(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. @@ -425,24 +440,18 @@ bool get_opt_dump_keepalive_edges(void); * * 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.