Enable pointer TBAA for LTO

Jan Hubicka hubicka@ucw.cz
Mon Nov 23 01:20:00 GMT 2015


> > +	    tree t = TREE_TYPE (field);
> > +	    if (in_lto_p)
> > +	      {
> > +		/* VECTOR_TYPE and ARRAY_TYPE share the alias set with their
> > +		   element type and that type has to be normalized to void *,
> > +		   too, in the case it is a pointer. */
> > +		while ((TREE_CODE (t) == ARRAY_TYPE
> > +			&& (!COMPLETE_TYPE_P (t)
> > +			    || TYPE_NONALIASED_COMPONENT (t)))
> > +		       || TREE_CODE (t) == VECTOR_TYPE)
> > +		  t = TREE_TYPE (t);
> > +		if (POINTER_TYPE_P (t))
> > +		  t = ptr_type_node;
> > +	      }
> > +
> > +	    record_alias_subset (superset, get_alias_set (t));
> > +	  }
> >        break;
> 
> Are you sure that it's not !TYPE_NONALIASED_COMPONENT (t) here?

You are right, TYPE_NONALIASED_COMPONENT is the wrong way.  I will fix it and try to come up
with a testcase (TYPE_NONALIASED_COMPONENT is quite rarely used beast)

Honza
> 
> -- 
> Eric Botcazou



More information about the Gcc-patches mailing list