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