On Mon, Aug 22, 2011 at 2:21 PM, Mateusz Grabowski <grabek...@wp.pl> wrote:
>
> Thank you for all the answers. Now I have another problem.
>
> When I reach a function call during statement iteration, I want to go to
> this function's code.
>
> if (is_gimple_call(stmt)) {
>                tree fndecl = gimple_call_fndecl(stmt);         // This 
> returns function_decl ;-)
>
>                struct funtion * new_cfun = DECL_STRUCT_FUNCTION(fndecl);      
>  /* This returns
> struct function * from tree */
>
>                /* Push the current cfun onto the stack, and set cfun to 
> new_cfun.  */
>                push_cfun (new_cfun);
>
>                annotate_function(cfun);
>
>                /* Pop cfun from the stack.  */
>                pop_cfun();
> }
>
>
> I have a problem with variable types (TREE_CODE). When I change cfun (using
> push_cfun), temporary variables, used in new function, have TREE_CODE equals
> VAR_DECL instead of SSA_NAME.
> I think I have reached the called function before it was passed through SSA.
> Should I pass the function through SSA manually or somehow change the moment
> when the plugin is run, so that all function are already passed through SSA?

The latter.

> View this message in context: 
> http://old.nabble.com/GIMPLE-and-intent-of-variables-tp32275433p32310211.html
> Sent from the gcc - patches mailing list archive at Nabble.com.
>
>

Reply via email to