On Fri, Feb 19, 2010 at 8:07 PM, Saleel Kudchadker <[email protected]> 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
>