[PATCH] D97411: [DebugInfo] Add an attribute to force type info to be emitted for types that are required to be complete.

Amy Huang via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri Mar 19 14:05:53 PDT 2021


akhuang added a comment.

In D97411#2611142 <https://reviews.llvm.org/D97411#2611142>, @probinson wrote:

> In D97411#2598625 <https://reviews.llvm.org/D97411#2598625>, @akhuang wrote:
>
>> I started looking into some diffs of debug info in libc++ tests, but it's pretty hard to tell what's different - as far as I can see, there are just a bunch of `__hash_value_type`s and `__value_type`s.
>
> This is a job for.... llvm-dva!  See the preliminary patch at D88661 <https://reviews.llvm.org/D88661>, although it's getting a bit old and might not apply/build cleanly.
>
> (llvm-dva is undergoing an internal review at the moment, we hope to have a proper reviewable patch series up soon-ish.)

cool, thanks! I tried using it to compare a file that just constructs all of the libc++ types, and it works pretty well (definitely nicer than processing/diffing the dwarf dumps).

One thing I ran into is that I think it'll classify a type as missing/added if it appears in a different order. Not sure if there's a way to make it ignore order, but it wasn't too hard to look through them all.

Anyway, comparing the types did find one class (allocator <https://github.com/llvm/llvm-project/blob/19d2c65ddd757997785163709800f837857f686d/libcxx/include/memory#L835>) that I didn't include the list of types to add the attribute to. Seems like it has some empty inline constructors that are marked constexpr after c++17. Maybe we don't need to have it because it doesn't affect printing the types in the debugger.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D97411



More information about the cfe-commits mailing list