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
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to