[PATCH] D80369: [DebugInfo][CallSites] Remove decl subprograms from 'retainedTypes:'

David Blaikie via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Fri May 22 17:42:18 PDT 2020


dblaikie added a comment.

In D80369#2051681 <https://reviews.llvm.org/D80369#2051681>, @aprantl wrote:

> In D80369#2051278 <https://reviews.llvm.org/D80369#2051278>, @dblaikie wrote:
>
> > @aprantl can you check here? I've attached two IR files for the ModuleDebugInfo.m test, before/after ('x' is before), stripped of the metadata numbers to make diffing easier - but I think you can still follow what's connected to what with reasonable guesswork. The point is these two function declarations end up in the retainedTypes list, and since the function declarations are emitted, so are the types used in their parameters, etc - but those types aren't reachable from anywhere else in the debug info metadata, so they won't be emitted into the final object file so far as I can see (because nothing looks at the function declarations in retainedTypes - only types).
> >
> > F11980002: x.ll <https://reviews.llvm.org/F11980002>
> >
> > F11980001: y.ll <https://reviews.llvm.org/F11980001>
>
>
> These two files are for the C++ test, not the Objective-C one. Is the Objective-C case similar?


Haven't looked.

> If there is no explicit CHECK line for the types anchored by the function calls, removing them is fine. However, for ObjC there is explicit code in `clang/lib/CodeGen/ObjectFilePCHContainerOperations.cpp` `DebugTypeVisitor::VisitFunctionDecl()` to emit the Objective-C methods. I do want to keep this functionality; it's needed for debugging Swift code with ObjC interoperability.

How does this data get used for Swift code and ObjC interoperability? At the moment I see no use of this IR metadata in LLVM. Does ObjC/Swift interop use the DI IR over in the Swift compiler? Got a link to the code there?

> I would be fine with manually adding everything created by this particular visitor to the retained types if that makes the separation easier.




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

https://reviews.llvm.org/D80369





More information about the cfe-commits mailing list