X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=ir%2Fir%2Firdump_grgen.c;h=f5f6371281a44a87a707238fa6758e020fac0dec;hb=7e8388fa7996ff182d3aa4e0cdd41b27bed4982f;hp=b301f6ba9078c99df764c270010d6c8b21d068f1;hpb=3995956c0f31fc52a25cbcde60298ce86511e932;p=libfirm diff --git a/ir/ir/irdump_grgen.c b/ir/ir/irdump_grgen.c index b301f6ba9..f5f637128 100644 --- a/ir/ir/irdump_grgen.c +++ b/ir/ir/irdump_grgen.c @@ -21,7 +21,7 @@ * @file * @brief Write ir graph as a grgen construction rule * @author Andreas Schoesser -* @version $Id:$ +* @version $Id$ */ /* @@ -157,7 +157,7 @@ static void collect_nodes(ir_node *n, void * env) * Starts dumping ************************************************************************/ -void dump_irg_grgen(ir_graph *irg, char *filename, int append) +void dump_irg_grgen_file(ir_graph *irg, char *filename, int append) { FILE *fp; grgen_dumpinfo_t dump_info; @@ -212,6 +212,18 @@ void dump_irg_grgen(ir_graph *irg, char *filename, int append) } +void dump_irg_grgen(ir_graph *irg, char *suffix) +{ + char filename[100] = ""; + + strncat(filename, get_entity_name(get_irg_entity(irg)), 100); + strncat(filename, suffix, 100); + strncat(filename, ".grg", 100); + + dump_irg_grgen_file(irg, filename, 0); +} + + /************************************************************************ * Dumps the left hand side of the rule ************************************************************************/ @@ -241,7 +253,7 @@ static int dump_pattern(grgen_dumpinfo_t *dump_info, FILE *fp) int i; // Dump edges - for(i = -1; i < get_irn_arity(n); i++) + for(i = is_Block(n) ? 0 : -1; i < get_irn_arity(n); i++) dump_grg_egde(n, i, dump_info, fp); } @@ -451,7 +463,7 @@ static void dump_grgen_eval(ir_node *n, grgen_dumpinfo_t *dump_info, FILE *fp) // Correlate the matched phi edges with the matched block edges // Caution: Position 0 in the edge_names array is the block edge, so start at 1 - for(i = 0; i < get_irn_arity(n) + 1; i++) + for(i = code == iro_Block; i < get_irn_arity(n) + 1; i++) { assert(edge_names[i] != NULL && "Some edges have not been dumped!");