aprantl added a comment.
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?
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. 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
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits