summaryrefslogtreecommitdiff
path: root/llvm/lib/TextAPI/SymbolSet.cpp
AgeCommit message (Collapse)Author
2024-01-29[TextAPI] Introduce granularity for handling ObjC Interface symbols (#79928)Cyndy Ishida
ObjCInterfaceRecords roughly align to the objc-classes key in tbd-files. They condensely represent up to 3 symbols. The problem here is that when represented this way, we lose granularity when these symbols could have different linkages or outright don't exist. This can happen frequently in interoptable code generated by the swift compiler. This adds fields and utility functions to express unique properties for these symbols. If the record does represent the same properties across all of its symbols, it will be treated the same in the TBD. Otherwise it will be printed in global's section. Reviewed seperately before by Juergen Ributzka
2024-01-26[TextAPI] Rename SymbolKind to EncodeKind (#79622)Cyndy Ishida
A distinction that doesn't _usually_ matter is that the MachO::SymbolKind is really a mapping of entries in TBD files not symbols. To better understand this, rename the enum so it represents an encoding mapped to TBDs as opposed to symbols alone. For example, it can be a bit confusing that "GlobalSymbol" is a enum value when all of those values can represent a GlobalSymbol.
2023-08-10[llvm] Use DenseMap::lookup (NFC)Kazu Hirata
2023-07-24[TextAPI] Introduce SymbolSetCyndy Ishida
SymbolSet is a structure that acts as a simple container class for exported symbols that belong to a library interface. It allows tapi to decouple the globals from the other library attributes. It's uniqued by symbol name and `kind`, which all contain their assigned target triples. Reviewed By: zixuw Differential Revision: https://reviews.llvm.org/D149860