Hi,

On Thu, 14 Apr 2011, Eric Botcazou wrote:

> > We have a flag for this already on the CALL_EXPR.  But we don't retain 
> > it over tuples, and hence we also don't look at it in 
> > inline_forbidden_p_stmt.  This patch fixes both.  (The strange testing 
> > of builtin-ness is because in CALL_EXPR the ALLOCA_FOR_VAR_P and 
> > CALL_FROM_THUNK_P flags are overloaded)
> 
> More precisely, we don't expose it on tuples; we do retain it over 
> tuples since we tuplify CALL_FROM_THUNK_P and we rematerialize it in 
> expand_call_stmt.

Right, that's correct, although of course it relies on the sharing of both 
flags on the tree side, which surprised me a bit as no comments in 
gimple.c/cfgexpand.c prepared me for that :)  I chose to not retain this 
sharing of flags for the gimple tuple, we have enough bits available for 
now.

> Nice patch.  The idea also occurred to me recently because we often run 
> into the inlining limitation in Ada.
> 
> Btw, I don't remember why I chose ALLOCA_FOR_VAR_P over 
> CALL_ALLOCA_FOR_VAR_P but, given the name of the GIMPLE flag and 
> predicate, it's probably time to change it.

Good idea, I'll rename it before checking in.


Ciao,
Michael.

Reply via email to