summaryrefslogtreecommitdiff
path: root/llvm/lib/TextAPI/RecordsSlice.cpp
AgeCommit message (Collapse)Author
2025-06-10[TextAPI] Use MapVector::try_emplace (NFC) (#143564)Kazu Hirata
- try_emplace(Key) is shorter than insert({Key, nullptr}). - try_emplace performs value initialization without value parameters. - We overwrite values on successful insertion anyway.
2025-05-26[llvm] Value-initialize values with *Map::try_emplace (NFC) (#141522)Kazu Hirata
try_emplace value-initializes values, so we do not need to pass nullptr to try_emplace when the value types are raw pointers or std::unique_ptr<T>.
2024-08-14[TextAPI] Use range-based for loops (NFC) (#103530)Kazu Hirata
2024-03-07[InstallAPI] Collect global functions (#83952)Cyndy Ishida
* Include whether functions are inlinable as they impact whether to add them into the tbd file and for future verification. * Fix how clang arguments got passed along, previously spacing was passed along to CC1 causing search path inputs to look non-existent.
2024-03-04[InstallAPI] Collect symbols from ObjC Ivars (#83632)Cyndy Ishida
2024-02-12[TextAPI] Refactor BinaryAttrs to InterfaceFile assignment (#81551)Cyndy Ishida
Create a helper method for this operation, so it can be reused in multiple places. Additonally move FileType enum into its own header to avoid include cycles.
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.
2024-01-13[llvm] Use range-based for loops with llvm::drop_begin (NFC)Kazu Hirata
2023-12-20[TextAPI] Add support to convert RecordSlices -> InterfaceFile (#75007)Cyndy Ishida
Introduce RecordVisitor. This is used for different clients that want to extract information out of RecordSlice types. The first and immediate use case is for serializing symbol information into TBD files.
2023-12-02[TextAPI] Introduce Records & RecordSlice Types (#74115)Cyndy Ishida
`Record`'s hold target triple specific information about APIs and symbols. This holds information about the relationship between ObjC symbols and their linkage properties. It will be used to compare and run significant operations between the frontend representation of symbols in AST and symbol information extracted from Mach-O binaries. This differs from the lighter weight Symbol and SymbolSet class where they are deduplicated across targets and only represent exported symbols, that class is mostly used for serializing.