X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=testprograms%2Fdead_block_example.c;h=ddd6d98e854ebb59baf7766c01df4e5a89478938;hb=be375dcbb1195db1ed6a7ea7e4787456fb1d7b4f;hp=77a20cd243c676266df14152cf1b6491a75bfdbf;hpb=2038643e8a4c590b059d9f30b15c626716398bc3;p=libfirm diff --git a/testprograms/dead_block_example.c b/testprograms/dead_block_example.c index 77a20cd24..ddd6d98e8 100644 --- a/testprograms/dead_block_example.c +++ b/testprograms/dead_block_example.c @@ -39,9 +39,9 @@ * This is a program as, e.g., * * if () then -* { Jmp label1; } /* happens anyways * +* { Jmp label1; } // happens anyways * else -* { Jmp label1; } /* happens anyways * +* { Jmp label1; } // happens anyways * label1: * return(); * Jmp label1; @@ -62,7 +62,7 @@ int main(int argc, char **argv) init_firm (NULL); /*** Make basic type information for primitive type int. ***/ - prim_t_int = new_type_primitive(id_from_str ("int", 3), mode_Is); + prim_t_int = new_type_primitive(new_id_from_chars ("int", 3), mode_Is); /* FIRM was designed for oo languages where all methods belong to a class. * For imperative languages like C we view a file as a large class containing @@ -76,12 +76,12 @@ int main(int argc, char **argv) #define NRES 1 printf("\nCreating an IR graph: %s...\n", CLASSNAME); - owner = new_type_class (id_from_str (CLASSNAME, strlen(CLASSNAME))); - proc_main = new_type_method(id_from_str(METHODNAME, strlen(METHODNAME)), + owner = new_type_class (new_id_from_chars (CLASSNAME, strlen(CLASSNAME))); + proc_main = new_type_method(new_id_from_chars(METHODNAME, strlen(METHODNAME)), NRARGS, NRES); set_method_res_type(proc_main, 0, prim_t_int); ent = new_entity (owner, - id_from_str (METHODNAME, strlen(METHODNAME)), + new_id_from_chars (METHODNAME, strlen(METHODNAME)), proc_main); get_entity_ld_name(ent); /* To enforce name mangling for vcg graph name */ #define NUM_OF_LOCAL_VARS 1 @@ -93,48 +93,48 @@ int main(int argc, char **argv) c2 = new_Const (mode_Is, new_tarval_from_long (2, mode_Is)); set_value(0, c2); - cond = new_Cond(new_Proj(new_Cmp(c1, c2), mode_b, Eq)); + cond = new_Cond(new_Proj(new_Cmp(c1, c2), mode_b, pn_Cmp_Eq)); f = new_Proj(cond, mode_X, 0); t = new_Proj(cond, mode_X, 1); - mature_block(get_irg_current_block(irg)); + mature_immBlock(get_irg_current_block(irg)); /* end block to add jmps */ endBlock = new_immBlock(); /* Block 1 */ Block1 = new_immBlock(); - add_in_edge(Block1, t); - mature_block(Block1); + add_immBlock_pred(Block1, t); + mature_immBlock(Block1); jmp = new_Jmp(); - add_in_edge(endBlock, jmp); + add_immBlock_pred(endBlock, jmp); /* Block 2 */ Block2 = new_immBlock(); - add_in_edge(Block2, f); - mature_block(Block2); + add_immBlock_pred(Block2, f); + mature_immBlock(Block2); jmp = new_Jmp(); - add_in_edge(endBlock, jmp); + add_immBlock_pred(endBlock, jmp); /* dead Block */ deadBlock = new_immBlock(); - mature_block(deadBlock); + mature_immBlock(deadBlock); jmp = new_Jmp(); - add_in_edge(endBlock, jmp); + add_immBlock_pred(endBlock, jmp); /* finish end block */ - switch_block(endBlock); + set_cur_block(endBlock); { ir_node *in[1]; in[0] = get_value(0, mode_Is); get_store(); x = new_Return (get_store(), 1, in); } - mature_block (get_irg_current_block(irg)); + mature_immBlock (get_irg_current_block(irg)); - add_in_edge (get_irg_end_block(irg), x); - mature_block (get_irg_end_block(irg)); + add_immBlock_pred (get_irg_end_block(irg), x); + mature_immBlock (get_irg_end_block(irg)); - finalize_cons (irg); + irg_finalize_cons (irg); printf("Optimizing ...\n"); local_optimize_graph (irg); @@ -144,8 +144,9 @@ int main(int argc, char **argv) irg_vrfy(irg); printf("Dumping the graph and a control flow graph.\n"); - dump_ir_block_graph (irg); - dump_cfg (irg); + char *dump_file_suffix = ""; + dump_ir_block_graph (irg, dump_file_suffix); + dump_cfg (irg, dump_file_suffix); printf("Use xvcg to view these graphs:\n"); printf("/ben/goetz/bin/xvcg GRAPHNAME\n\n");