On Fri, Feb 19, 2010 at 8:07 PM, Saleel Kudchadker <skudc...@asu.edu> 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 >