llvm-project/lld/MachO
Alexander Shaposhnikov f1e4e2fb20 [lld][MachO] Refactor handling of subsections
This diff is a preparation for fixing FunStabs (incorrect size calculation).
std::map<uint32_t, InputSection*> (SubsectionMap) is replaced with
a sorted vector + binary search. If .subsections_via_symbols is set
this vector will contain the list of subsections, otherwise,
the offsets will be used for calculating the symbols sizes.

Test plan: make check-all

Differential revision: https://reviews.llvm.org/D98837
2021-03-31 16:52:53 -07:00
..
Arch [lld-macho][NFC] Drop unnecessary macho:: namespace prefix on unambiguous references to Symbol 2021-03-30 14:58:35 -07:00
CMakeLists.txt [lld-macho] implement options -map 2021-03-18 10:39:19 -04:00
Config.h [lld-macho] Implement -segprot 2021-03-29 14:08:12 -04:00
Driver.cpp [lld][MachO] Refactor handling of subsections 2021-03-31 16:52:53 -07:00
Driver.h Revert "Revert "Revert "Revert "Revert "Revert "[lld-macho] Implement -dependency_info (partially - more opcodes needed)"""""" 2021-03-23 14:51:05 -04:00
DriverUtils.cpp Reland [lld-macho][nfc] minor clean up, follow up to D98559 2021-03-25 16:46:37 -04:00
Dwarf.cpp [lld-macho][NFC] add const to pointer/reference induction variables of range-based for loops 2021-03-10 12:07:31 -08:00
Dwarf.h [lld-macho] Emit STABS symbols for debugging, and drop debug sections 2020-12-01 15:05:20 -08:00
ExportTrie.cpp [lld-macho][NFC] add const to pointer/reference induction variables of range-based for loops 2021-03-10 12:07:31 -08:00
ExportTrie.h [lld-macho] Export trie addresses should be relative to the image base 2020-09-20 20:43:15 -07:00
InputFiles.cpp [lld][MachO] Refactor handling of subsections 2021-03-31 16:52:53 -07:00
InputFiles.h [lld][MachO] Refactor handling of subsections 2021-03-31 16:52:53 -07:00
InputSection.cpp [lld-macho][NFC] Drop unnecessary macho:: namespace prefix on unambiguous references to Symbol 2021-03-30 14:58:35 -07:00
InputSection.h [lld-macho][nfc] Move list of section names into InputSection.h 2021-03-13 17:41:50 -05:00
LTO.cpp [lld-macho] Add time tracing for LTO 2021-03-26 18:14:10 -04:00
LTO.h [lld-macho] Add very basic support for LTO 2020-11-10 12:19:28 -08:00
MachOStructs.h [lld-macho] Ensure reads from nlist_64 structs are aligned when necessary 2020-06-02 13:19:38 -07:00
MapFile.cpp [lld-macho][NFC] Drop unnecessary macho:: namespace prefix on unambiguous references to Symbol 2021-03-30 14:58:35 -07:00
MapFile.h [lld-macho] implement options -map 2021-03-18 10:39:19 -04:00
MergedOutputSection.cpp [lld-macho][NFC] Drop unnecessary braces around simple if/for bodies 2021-03-16 22:39:39 -07:00
MergedOutputSection.h [lld-macho] Refactor segment/section creation, sorting, and merging 2020-06-21 17:13:59 -07:00
ObjC.cpp [lld-macho] Implement -ObjC 2020-08-26 19:20:55 -07:00
ObjC.h [lld-macho] Implement -ObjC 2020-08-26 19:20:55 -07:00
Options.td [lld-macho] Implement -segprot 2021-03-29 14:08:12 -04:00
OutputSection.cpp [lld-macho] Refactor segment/section creation, sorting, and merging 2020-06-21 17:13:59 -07:00
OutputSection.h [lld-macho] Emit indirect symbol table 2020-09-23 19:26:40 -07:00
OutputSegment.cpp [lld-macho] Implement -segprot 2021-03-29 14:08:12 -04:00
OutputSegment.h [lld-macho] add code signature for native arm64 macOS 2021-02-24 17:05:23 -08:00
Relocations.cpp [lld-macho] Check address ranges when applying relocations 2021-03-12 17:26:27 -05:00
Relocations.h [lld][MachO] Refactor handling of subsections 2021-03-31 16:52:53 -07:00
SymbolTable.cpp [lld-macho] Define __mh_*_header synthetic symbols. 2021-03-19 14:14:40 -04:00
SymbolTable.h [lld-macho] Define __mh_*_header synthetic symbols. 2021-03-19 14:14:40 -04:00
Symbols.cpp [lld-macho][nfc] Give every SyntheticSection a fake InputSection 2021-03-12 17:26:27 -05:00
Symbols.h [lld-macho][nfc] Removed unnecessary static_cast 2021-03-25 15:07:46 -04:00
SyntheticSections.cpp [lld-macho][nfc] Fixed typo in comment 2021-03-19 14:19:36 -04:00
SyntheticSections.h [lld-macho] Support -no_function_starts 2021-03-26 18:14:10 -04:00
Target.cpp [lld-macho][nfc] Create Relocations.{h,cpp} for relocation-specific code 2021-03-11 13:28:09 -05:00
Target.h [lld-macho][NFC] Minor refactor of Writer::run() 2021-03-17 15:13:43 -07:00
UnwindInfoSection.cpp [lld-macho][NFC] Drop unnecessary macho:: namespace prefix on unambiguous references to Symbol 2021-03-30 14:58:35 -07:00
UnwindInfoSection.h [lld-macho] Emit LSDA info in compact unwind 2021-02-08 13:48:00 -05:00
Writer.cpp [lld-macho] Parallelize UUID hash computation 2021-03-31 15:48:36 -04:00
Writer.h [lld-macho][NFC] Minor refactor of Writer::run() 2021-03-17 15:13:43 -07:00