[PATCH] D54755: [DebugInfo] IR/Bitcode changes for DISubprogram flags
Paul Robinson via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Fri Nov 30 08:55:44 PST 2018
probinson added a comment.
In D54755#1313679 <https://reviews.llvm.org/D54755#1313679>, @dexonsmith wrote:
> In D54755#1313098 <https://reviews.llvm.org/D54755#1313098>, @probinson wrote:
>
> > In D54755#1313064 <https://reviews.llvm.org/D54755#1313064>, @probinson wrote:
> >
> > > In D54755#1312971 <https://reviews.llvm.org/D54755#1312971>, @aprantl wrote:
> > >
> > > > While I was updating some internal testcases I wondered: why is DIFlagPrototype not a DISPFlag? Does this flag make sense on something other than functions?
> > >
> > >
> > > Because I was not interested in moving existing flags from the old word to the new word in the first round. There are others that probably apply only to subprograms:
> > > NoReturn, MainSubprogram; probably Thunk, All CallsDescribed; maybe Trivial, Explicit.
> > > Really we should do some kind of audit, and do a bulk move in one go so we can minimize the bitcode-upgrade pain.
> >
> >
> > One additional problem is that the existing flags are exposed as part of the public API, i.e. to front-ends, so we'll need to work out how to avoid Bad Stuff(tm) if we repurpose any existing flag bits.
>
>
> Another option here is not to merge them at all in bitcode (I didn't consider this before). You can add an abbreviation for a fixed-width field of 1 bit each:
> https://llvm.org/docs/BitCodeFormat.html#fixed-width-value
Wouldn't that cause every new flag to be a bitcode format change? The value of having a flags word is that new flags in the same word don't affect the bitcode format.
Repository:
rL LLVM
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D54755/new/
https://reviews.llvm.org/D54755
More information about the llvm-commits
mailing list