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? 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