probinson added a comment.

In D73261#1838552 <https://reviews.llvm.org/D73261#1838552>, @djtodoro wrote:

> > Is it necessary to use DIFlags? I am willing to do that but generally, it 
> > is not welcomed because we have a limited number of DIFlags and most of 
> > them are currently in use.
>
> Are there any flags within `DIFlags` that could be applied only to functions? 
> If so, we should move them in to the `DISPFlags` in order to make some space 
> within the `DIFlags`.


There might be.  The trick is backward compatibility of bitcode.  It looks like 
Virtual is already replicated to DISPFlags, but wasn't removed from DIFlags.  
Other candidates for migration to DISPFlags: Explicit, Prototyped, NoReturn, 
Thunk, AllCallsDescribed, maybe NonTrivial.
Their exact semantics and how they're used would have to be verified.

@dblaikie @aprantl  thoughts on this?

huh. DIFlag bit 21 has no symbol; it used to be DIFlagMainSubprogram but we did 
not put in a Reserved or Deprecated name for it.  That should be fixed.

> In addition, does it make sense to making something like `DIVarFlags`? And 
> move the flags applying only to variables.

We might have some like that.  BitField and StaticMember, just based on the 
names.

Note that moving flags around is tricky and requires extreme care to ensure 
full backward compatibility.  Moving flags would have to be its own patch and 
this one would depend on it.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D73261/new/

https://reviews.llvm.org/D73261



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to