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