This is the mail archive of the gcc@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: 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.



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