[PATCH] WIP: DI: Fold constant arguments into a single MDString

Duncan P. N. Exon Smith dexonsmith at apple.com
Tue Sep 16 10:05:29 PDT 2014


> On 2014-Sep-15, at 16:58, David Blaikie <dblaikie at gmail.com> wrote:
> 
>>  1. I think `\0` is cleaner than `,`.  Bike shed?
> 
> OK by me, but depending on how much schema and test case churn you're inclined to (I know you folks at Apple are a bit more concerned about schema churn than I am - because you have static bitcode archives, etc) we might want to discuss the whole thing in a bit more detail. Things like:
> 
> * how's the scheme going to extend to hierarchical data? (eventually we'll hopefully have rolled most of the whole DIE tree into single big strings - separate out the types (which are still huge/non-trivial with all the member function declarations, etc), etc)
> * Do we want to consider a more human readable form (perhaps with an internal clang flag to force it to produce that version of the metadata?) for the purpose of writing test cases? Perhaps self-describing, so we can more easily omit irrelevant fields from tests (when the file/line/col doesn't matter for a particular declaration, etc).
> 
> If you're willing to churn this more later, I don't mind deferring these decisions, if not - we might want to plan a bit more carefully.

I'd prefer to defer these decisions -- IMO, the churn is inevitable.

> HeaderTwine doesn't look like a Twine - it looks like a string builder of sorts. (I'd avoid using the term twine for something that doesn't do the magic delayed string concatenation that llvm's twine does) maybe HeaderString?

Good call.

> Some of the Verify implementations look off - old num operands == new num operands + header fields - 1 (minus one for the header itself being counted in the number of operands), right? Some don't add up (DITemplateTypeParameter::Verify went from 7 to 4 + 3, so isn't it missing a field?

Yup, I found a few myself.  I'll clean those up.

> Any size measurements/test results (does this bootstrap?) on this?

None yet.

Thanks for the early look -- seems like we're on the same page.  I'll
send it out again once I've finished the testcases (somewhat delayed due
to vacation) and gathered some data.



More information about the llvm-commits mailing list