Dear all,
I've been trying to add a pass that adds a function call at the
beginning of each function. However, my first solution was to simply
do something like this:
bb = ENTRY_BLOCK_PTR ->next_bb;
i = bsi_start (bb);
tree call = create_function_call(profile_begin, funcname);
bsi_insert_before(&i, call, BSI_SAME_STMT);
However, this doesn't work if the function looks like this :
void foo(int bar)
{
int i;
while(1)
{
printf( "-> %d\n", bar);
}
}
My call gets inserted into the loop and not before the loop which
isn't what I'm looking for.
I then tried to do something like :
basic_block tmp = create_empty_bb (ENTRY_BLOCK_PTR);
tree call = create_function_call(profile_begin, funcname);
i = bsi_last(tmp);
bsi_insert_before(&i, call, BSI_NEW_STMT);
But this doesn't work either. Any ideas to insert a function call at
the beginning of a function even in the case of a loop ?
Thanks,
Jc