X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=testprograms%2Fdead_block_example.c;h=41d118df64e9ee28be7b0240b5c4ce015f184766;hb=e569ea0a211514dcb0d96207d2600dd0fb18e23b;hp=cc3522b2f46280ae033d4b91e4b2cfeca469a04b;hpb=a3a4f27fa76972a5aa4773b34ad83796eaf1fcfc;p=libfirm diff --git a/testprograms/dead_block_example.c b/testprograms/dead_block_example.c index cc3522b2f..41d118df6 100644 --- a/testprograms/dead_block_example.c +++ b/testprograms/dead_block_example.c @@ -47,6 +47,7 @@ int main(int argc, char **argv) ir_graph *irg; /* this variable contains the irgraph */ type *owner; /* the class in which this method is defined */ type *proc_main; /* type information for the method main */ + type *prim_t_int; entity *ent; /* represents this method as entity of owner */ ir_node *c1, *c2, *cond, *f, *t, *endBlock, *Block1, *jmp, *Block2, *deadBlock, *x; @@ -56,6 +57,9 @@ int main(int argc, char **argv) set_opt_cse(0); /* there is a bug: first and start block are cse!! @@@ */ + /*** Make basic type information for primitive type int. ***/ + prim_t_int = new_type_primitive(id_from_str ("int", 3), mode_i); + /* 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 * all functions as methods in this file. @@ -65,12 +69,13 @@ int main(int argc, char **argv) #define CLASSNAME "DEAD_BLOCK" #define METHODNAME "main" #define NRARGS 0 -#define NRES 0 +#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)), NRARGS, NRES); + set_method_res_type(proc_main, 0, prim_t_int); ent = new_entity (owner, id_from_str (METHODNAME, strlen(METHODNAME)), proc_main); @@ -125,6 +130,8 @@ int main(int argc, char **argv) add_in_edge (get_irg_end_block(irg), x); mature_block (get_irg_end_block(irg)); + finalize_cons (irg); + printf("Optimizing ...\n"); local_optimize_graph (irg); dead_node_elimination (irg);