This is the mail archive of the gcc-patches@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: [C++] make TYPE_DECLs public for builtin type and templates


> On 06/30/2014 03:27 PM, Jan Hubicka wrote:
> >This catches two cases in C++ FE and several other cases elsewhere.
> >Does something like this make sense? I think bulitin_types are
> >generally public, but I am not quite sure about templates.
> 
> Template parms have no linkage, but they certainly don't prevent a
> template from being public.  So I guess setting TREE_PUBLIC makes
> sense.
> 
> >I also wonder if I should copy
> >PUBLIC flag from component type in complex numbers - can we produce complex
> >number from anonymous type?
> 
> Only from built-in types I think, but it wouldn't hurt to copy
> TREE_PUBLIC from component_type.

OK, I updated my copy of the patch.
> 
> >Finally type_in_anonymous_namespace_p needs to be extended into two cases where
> >the type is considered nonanonymous by lack of DECL_NAME.
> 
> I would think the right fix is to avoid calling it for non-class types?

I am trying to make LTO tree streaming to not unify types that are known to be local
to a compilation unit.  This allows better TBAA to be preserved, since two anonymous
namespace types from two different unit are not the same.

I want to avoid the overhead of SCC hashing and canonical type computation for these
and here I want the concept of anonymous namespace types to be closed upwards.
That is if I have type that is not considered anonymous it should not be built from
non-anonymous types.

So here I need to test anonymity of non-class types...

Thanks for looking into this!
Honza


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