This is the mail archive of the gcc-help@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Adding a statement to statement list before pass_cfg_build


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]