This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Inserting a call statement
On Wed, 2005-07-27 at 17:54 +0100, Paul Brook wrote:
> On Wednesday 27 July 2005 17:33, drizzle drizzle wrote:
> > Hi
> > I am trying to insert a function call "foo" inside the tree list.
> >
> >
> > Inside this particular loop
> > for (bsi = bsi_start (bb); !bsi_end_p (bsi); bsi_next (&bsi))
> > {
> >
> > // if a particular condition is satisfied I do the following
> >
> > tree id = get_identifier ("foo");
> > tree t = build_function_type_list (void_type_node,NULL_TREE);
> > tree decl = build_decl (FUNCTION_DECL, id, t);
> > tree call = build_function_call_expr (decl, NULL);
> > bsi_insert_before(&bsi,call,BSI_CHAIN_END); // I have tried BSI_NEW_STMT
> >
> >
> > }
> >
> >
> > Although the node is created properly, an assertion in
> > tree-flow-inline.h fails. Can someone help me identify the issue here.
> > i will appreciate that
>
> You don't appear to be recording the FUNCTION_DECL anywhere, which probably
> means cgraph doesn't know about it.
>
This is the least of his worries :)
tree-profile doesn't record it either.
Most of the tree opts that add function calls don't update the cgraph
edges right now.