On Fri, 2005-11-11 at 22:53 -0800, Ian Lance Taylor wrote:
> David Daney <[EMAIL PROTECTED]> writes:
> 
> > > Eventually we should manually mark certain function DECLs as
> > > not-returning-null instead of my kludgy test for this one case.  I don't
> > > know if/when I can get to that.  Perhaps somebody else can take it from
> > > here.
> > 
> > Looks like all the bits in struct tree_common are used up.
> > 
> > Q: Would it make sense to add a flag to struct tree_decl_common to
> > indicate !zero, set it using an attribute, (and automatically in  the
> > java front-end for the cases above), and then test for it in
> > tree-vrp.c similar to below?
> 
> This should be done using an attribute, yes.  If this is going to be
> tested frequently enough, it would make sense to add a bit to struct
> tree_function_decl (I don't see any reason to put it in struct
> tree_decl-common) (there is currently room for one more bit in
> tree_function_decl on a machine which requires 16-bit alignment, or 17
> more bits on a machine which requires 32-bit alignment).


Note you could also put things in decl_non_common, but i'd probably beat
you up :)


>   Note that it
> is also possible to simply store the attribute on DECL_ATTRIBUTES and
> look it up using lookup_attribute.

IMHO, this is the way to go.  The number of times we look at attributes
on function_decls (IE through call_expr_flags, etc) is so small i've
never understood why we use so many bits to represent thing we are
getting from attributes.
Most functions have no attributes, so it's a very simple check for
lookup_attribute to perform.  Even when they have *1* attribute, it's
still simple.




> 
> Ian

Reply via email to