Thank you Richard. I think I will try to add them on the edges once the basic blocks are created. On Fri, Feb 19, 2010 at 12:19 PM, Richard Guenther <richard.guenther@xxxxxxxxx> wrote: > On Fri, Feb 19, 2010 at 8:07 PM, Saleel Kudchadker <skudchad@xxxxxxx> wrote: >> Hi >> >> I've been trying to add a statement before the statement list before >> the basic blocks are created. I am planning to add a function call >> statement before a user function is called and I use the instrument >> function definition as a statement . The code and the pass compiles >> properly but no function is called when the actual program runs. >> >> Can someone hint me where I am going wrong? > > Before CFG creation we are in gimple and inserting trees to the > tree stmt list is useless. > >> >> static void spmm_init_function(tree *tp) >> { >> tree func_decl; >> tree x,spmm_decl,bind; >> tree_stmt_iterator i = tsi_start (*tp); >> tree_stmt_iterator last_i; >> tree stmt=NULL; >> enum tree_code code; >> while (!tsi_end_p (i)) >> { >> tree prev_stmt; >> >> prev_stmt = stmt; >> stmt = tsi_stmt (i); >> code = TREE_CODE (stmt); >> switch (code) >> { >> case CALL_EXPR: >> print_ >> x = implicit_built_in_decls[BUILT_IN_PROFILE_FUNC_ENTER]; >> x = build_call_expr (x, 0); >> tsi_link_after(&i,x,TSI_NEW_STMT); >> break; >> >> default: >> break; >> } >> tsi_next(&i); >> } >> >> } >> >> -- >> Regards, >> >> Saleel Kudchadker >> Graduate Student >> School of Computing , Informatics and Decision Systems >> Arizona State University >> > -- Regards, Saleel Kudchadker Graduate Teaching Assistant School of Computing , Informatics and Decision Systems Arizona State University