|
1 | 1 | Auto generated patch. Do not edit or delete it, even if empty. |
| 2 | +diff -ruN --strip-trailing-cr a/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h b/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h |
| 3 | +--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h |
| 4 | ++++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFContext.h |
| 5 | +@@ -107,10 +107,6 @@ |
| 6 | + MacroDwoSection |
| 7 | + }; |
| 8 | + |
| 9 | +- // When set parses debug_info.dwo/debug_abbrev.dwo manually and populates CU |
| 10 | +- // Index, and TU Index for DWARF5. |
| 11 | +- bool ParseCUTUIndexManually = false; |
| 12 | +- |
| 13 | + public: |
| 14 | + DWARFContext(std::unique_ptr<const DWARFObject> DObj, |
| 15 | + std::string DWPName = "", |
| 16 | +@@ -447,14 +443,6 @@ |
| 17 | + /// into "SectionedAddress Address" |
| 18 | + DWARFCompileUnit *getCompileUnitForAddress(uint64_t Address); |
| 19 | + |
| 20 | +- /// Returns whether CU/TU should be populated manually. TU Index populated |
| 21 | +- /// manually only for DWARF5. |
| 22 | +- bool getParseCUTUIndexManually() const { return ParseCUTUIndexManually; } |
| 23 | +- |
| 24 | +- /// Sets whether CU/TU should be populated manually. TU Index populated |
| 25 | +- /// manually only for DWARF5. |
| 26 | +- void setParseCUTUIndexManually(bool PCUTU) { ParseCUTUIndexManually = PCUTU; } |
| 27 | +- |
| 28 | + private: |
| 29 | + /// Parse a macro[.dwo] or macinfo[.dwo] section. |
| 30 | + std::unique_ptr<DWARFDebugMacro> |
| 31 | +diff -ruN --strip-trailing-cr a/llvm/include/llvm/DebugInfo/DWARF/DWARFUnitIndex.h b/llvm/include/llvm/DebugInfo/DWARF/DWARFUnitIndex.h |
| 32 | +--- a/llvm/include/llvm/DebugInfo/DWARF/DWARFUnitIndex.h |
| 33 | ++++ b/llvm/include/llvm/DebugInfo/DWARF/DWARFUnitIndex.h |
| 34 | +@@ -137,14 +137,12 @@ |
| 35 | + public: |
| 36 | + const SectionContribution *getContribution(DWARFSectionKind Sec) const; |
| 37 | + const SectionContribution *getContribution() const; |
| 38 | +- SectionContribution &getContribution(); |
| 39 | + |
| 40 | + const SectionContribution *getContributions() const { |
| 41 | + return Contributions.get(); |
| 42 | + } |
| 43 | + |
| 44 | + uint64_t getSignature() const { return Signature; } |
| 45 | +- bool isValid() { return Index; } |
| 46 | + }; |
| 47 | + |
| 48 | + private: |
| 49 | +@@ -185,10 +183,6 @@ |
| 50 | + ArrayRef<Entry> getRows() const { |
| 51 | + return ArrayRef(Rows.get(), Header.NumBuckets); |
| 52 | + } |
| 53 | +- |
| 54 | +- MutableArrayRef<Entry> getMutableRows() { |
| 55 | +- return makeMutableArrayRef(Rows.get(), Header.NumBuckets); |
| 56 | +- } |
| 57 | + }; |
| 58 | + |
| 59 | + } // end namespace llvm |
| 60 | +diff -ruN --strip-trailing-cr a/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp b/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp |
| 61 | +--- a/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp |
| 62 | ++++ b/llvm/lib/DebugInfo/DWARF/DWARFContext.cpp |
| 63 | +@@ -779,82 +779,14 @@ |
| 64 | + return Success; |
| 65 | + } |
| 66 | + |
| 67 | +-void fixupIndex(const DWARFObject &DObj, DWARFContext &C, |
| 68 | +- DWARFUnitIndex &Index) { |
| 69 | +- using EntryType = DWARFUnitIndex::Entry::SectionContribution; |
| 70 | +- using EntryMap = DenseMap<uint32_t, EntryType>; |
| 71 | +- EntryMap Map; |
| 72 | +- if (DObj.getCUIndexSection().empty()) |
| 73 | +- return; |
| 74 | +- |
| 75 | +- uint64_t Offset = 0; |
| 76 | +- uint32_t TruncOffset = 0; |
| 77 | +- DObj.forEachInfoDWOSections([&](const DWARFSection &S) { |
| 78 | +- if (!(C.getParseCUTUIndexManually() || |
| 79 | +- S.Data.size() >= std::numeric_limits<uint32_t>::max())) |
| 80 | +- return; |
| 81 | +- |
| 82 | +- DWARFDataExtractor Data(DObj, S, C.isLittleEndian(), 0); |
| 83 | +- while (Data.isValidOffset(Offset)) { |
| 84 | +- DWARFUnitHeader Header; |
| 85 | +- if (!Header.extract(C, Data, &Offset, DWARFSectionKind::DW_SECT_INFO)) { |
| 86 | +- logAllUnhandledErrors( |
| 87 | +- createError("Failed to parse CU header in DWP file"), errs()); |
| 88 | +- Map.clear(); |
| 89 | +- break; |
| 90 | +- } |
| 91 | +- |
| 92 | +- auto Iter = Map.insert({TruncOffset, |
| 93 | +- {Header.getOffset(), Header.getNextUnitOffset() - |
| 94 | +- Header.getOffset()}}); |
| 95 | +- if (!Iter.second) { |
| 96 | +- logAllUnhandledErrors( |
| 97 | +- createError("Collision occured between for truncated offset 0x" + |
| 98 | +- Twine::utohexstr(TruncOffset)), |
| 99 | +- errs()); |
| 100 | +- Map.clear(); |
| 101 | +- return; |
| 102 | +- } |
| 103 | +- |
| 104 | +- Offset = Header.getNextUnitOffset(); |
| 105 | +- TruncOffset = Offset; |
| 106 | +- } |
| 107 | +- }); |
| 108 | +- |
| 109 | +- if (Map.empty()) |
| 110 | +- return; |
| 111 | +- |
| 112 | +- for (DWARFUnitIndex::Entry &E : Index.getMutableRows()) { |
| 113 | +- if (!E.isValid()) |
| 114 | +- continue; |
| 115 | +- DWARFUnitIndex::Entry::SectionContribution &CUOff = E.getContribution(); |
| 116 | +- auto Iter = Map.find(CUOff.getOffset()); |
| 117 | +- if (Iter == Map.end()) { |
| 118 | +- logAllUnhandledErrors(createError("Could not find CU offset 0x" + |
| 119 | +- Twine::utohexstr(CUOff.getOffset()) + |
| 120 | +- " in the Map"), |
| 121 | +- errs()); |
| 122 | +- break; |
| 123 | +- } |
| 124 | +- CUOff.setOffset(Iter->second.getOffset()); |
| 125 | +- if (CUOff.getOffset() != Iter->second.getOffset()) |
| 126 | +- logAllUnhandledErrors(createError("Length of CU in CU index doesn't " |
| 127 | +- "match calculated length at offset 0x" + |
| 128 | +- Twine::utohexstr(CUOff.getOffset())), |
| 129 | +- errs()); |
| 130 | +- } |
| 131 | +- |
| 132 | +- return; |
| 133 | +-} |
| 134 | +- |
| 135 | + const DWARFUnitIndex &DWARFContext::getCUIndex() { |
| 136 | + if (CUIndex) |
| 137 | + return *CUIndex; |
| 138 | + |
| 139 | + DataExtractor CUIndexData(DObj->getCUIndexSection(), isLittleEndian(), 0); |
| 140 | ++ |
| 141 | + CUIndex = std::make_unique<DWARFUnitIndex>(DW_SECT_INFO); |
| 142 | + CUIndex->parse(CUIndexData); |
| 143 | +- fixupIndex(*DObj, *this, *CUIndex.get()); |
| 144 | + return *CUIndex; |
| 145 | + } |
| 146 | + |
| 147 | +@@ -863,12 +795,9 @@ |
| 148 | + return *TUIndex; |
| 149 | + |
| 150 | + DataExtractor TUIndexData(DObj->getTUIndexSection(), isLittleEndian(), 0); |
| 151 | ++ |
| 152 | + TUIndex = std::make_unique<DWARFUnitIndex>(DW_SECT_EXT_TYPES); |
| 153 | + TUIndex->parse(TUIndexData); |
| 154 | +- // If we are parsing TU-index and for .debug_types section we don't need |
| 155 | +- // to do anything. |
| 156 | +- if (TUIndex->getVersion() != 2) |
| 157 | +- fixupIndex(*DObj, *this, *TUIndex.get()); |
| 158 | + return *TUIndex; |
| 159 | + } |
| 160 | + |
| 161 | +diff -ruN --strip-trailing-cr a/llvm/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp b/llvm/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp |
| 162 | +--- a/llvm/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp |
| 163 | ++++ b/llvm/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp |
| 164 | +@@ -269,11 +269,6 @@ |
| 165 | + return nullptr; |
| 166 | + } |
| 167 | + |
| 168 | +-DWARFUnitIndex::Entry::SectionContribution & |
| 169 | +-DWARFUnitIndex::Entry::getContribution() { |
| 170 | +- return Contributions[Index->InfoColumn]; |
| 171 | +-} |
| 172 | +- |
| 173 | + const DWARFUnitIndex::Entry::SectionContribution * |
| 174 | + DWARFUnitIndex::Entry::getContribution() const { |
| 175 | + return &Contributions[Index->InfoColumn]; |
| 176 | +diff -ruN --strip-trailing-cr a/llvm/test/tools/llvm-dwp/X86/cu_tu_units_manual_v5.s b/llvm/test/tools/llvm-dwp/X86/cu_tu_units_manual_v5.s |
| 177 | +--- a/llvm/test/tools/llvm-dwp/X86/cu_tu_units_manual_v5.s |
| 178 | ++++ b/llvm/test/tools/llvm-dwp/X86/cu_tu_units_manual_v5.s |
| 179 | +@@ -1,92 +0,0 @@ |
| 180 | +-# This test checks if we can correctly parse manull cu and tu index for DWARF5. |
| 181 | +- |
| 182 | +-# RUN: llvm-mc -triple x86_64-unknown-linux %s -filetype=obj -o %t.o \ |
| 183 | +-# RUN: -split-dwarf-file=%t.dwo -dwarf-version=5 |
| 184 | +-# RUN: llvm-dwp %t.dwo -o %t.dwp |
| 185 | +-# RUN: llvm-dwarfdump -debug-info -debug-cu-index -debug-tu-index %t.dwp | FileCheck -check-prefix=CHECK %s |
| 186 | +-# RUN: llvm-dwarfdump -debug-info -debug-cu-index -debug-tu-index -manaully-generate-unit-index %t.dwp | FileCheck -check-prefix=CHECK2 %s |
| 187 | +- |
| 188 | +-## Note: In order to check whether the type unit index is generated |
| 189 | +-## there is no need to add the missing DIEs for the structure type of the type unit. |
| 190 | +- |
| 191 | +-# CHECK-DAG: .debug_info.dwo contents: |
| 192 | +-# CHECK: 0x00000000: Type Unit: length = 0x00000017, format = DWARF32, version = 0x0005, unit_type = DW_UT_split_type, abbr_offset = 0x0000, addr_size = 0x08, name = '', type_signature = [[TUID1:.*]], type_offset = 0x0019 (next unit at 0x0000001b) |
| 193 | +-# CHECK: 0x0000001b: Type Unit: length = 0x00000017, format = DWARF32, version = 0x0005, unit_type = DW_UT_split_type, abbr_offset = 0x0000, addr_size = 0x08, name = '', type_signature = [[TUID2:.*]], type_offset = 0x0019 (next unit at 0x00000036) |
| 194 | +-# CHECK: 0x00000036: Compile Unit: length = 0x00000011, format = DWARF32, version = 0x0005, unit_type = DW_UT_split_compile, abbr_offset = 0x0000, addr_size = 0x08, DWO_id = [[CUID1:.*]] (next unit at 0x0000004b) |
| 195 | +-# CHECK-DAG: .debug_cu_index contents: |
| 196 | +-# CHECK: version = 5, units = 1, slots = 2 |
| 197 | +-# CHECK: Index Signature INFO ABBREV |
| 198 | +-# CHECK: 1 [[CUID1]] [0x0000000000000036, 0x000000000000004b) [0x00000000, 0x00000010) |
| 199 | +-# CHECK-DAG: .debug_tu_index contents: |
| 200 | +-# CHECK: version = 5, units = 2, slots = 4 |
| 201 | +-# CHECK: Index Signature INFO ABBREV |
| 202 | +-# CHECK: 1 [[TUID1]] [0x0000000000000000, 0x000000000000001b) [0x00000000, 0x00000010) |
| 203 | +-# CHECK: 4 [[TUID2]] [0x000000000000001b, 0x0000000000000036) [0x00000000, 0x00000010) |
| 204 | +- |
| 205 | +-# CHECK2-DAG: .debug_info.dwo contents: |
| 206 | +-# CHECK2: 0x00000000: Type Unit: length = 0x00000017, format = DWARF32, version = 0x0005, unit_type = DW_UT_split_type, abbr_offset = 0x0000, addr_size = 0x08, name = '', type_signature = [[TUID1:.*]], type_offset = 0x0019 (next unit at 0x0000001b) |
| 207 | +-# CHECK2: 0x0000001b: Type Unit: length = 0x00000017, format = DWARF32, version = 0x0005, unit_type = DW_UT_split_type, abbr_offset = 0x0000, addr_size = 0x08, name = '', type_signature = [[TUID2:.*]], type_offset = 0x0019 (next unit at 0x00000036) |
| 208 | +-# CHECK2: 0x00000036: Compile Unit: length = 0x00000011, format = DWARF32, version = 0x0005, unit_type = DW_UT_split_compile, abbr_offset = 0x0000, addr_size = 0x08, DWO_id = [[CUID1:.*]] (next unit at 0x0000004b) |
| 209 | +-# CHECK2-DAG: .debug_cu_index contents: |
| 210 | +-# CHECK2: version = 5, units = 1, slots = 2 |
| 211 | +-# CHECK2: Index Signature INFO ABBREV |
| 212 | +-# CHECK2: 1 [[CUID1]] [0x0000000000000036, 0x000000000000004b) [0x00000000, 0x00000010) |
| 213 | +-# CHECK2-DAG: .debug_tu_index contents: |
| 214 | +-# CHECK2: version = 5, units = 2, slots = 4 |
| 215 | +-# CHECK2: Index Signature INFO ABBREV |
| 216 | +-# CHECK2: 1 [[TUID1]] [0x0000000000000000, 0x000000000000001b) [0x00000000, 0x00000010) |
| 217 | +-# CHECK2: 4 [[TUID2]] [0x000000000000001b, 0x0000000000000036) [0x00000000, 0x00000010) |
| 218 | +- |
| 219 | +- .section .debug_info.dwo,"e",@progbits |
| 220 | +- .long .Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit |
| 221 | +-.Ldebug_info_dwo_start0: |
| 222 | +- .short 5 # DWARF version number |
| 223 | +- .byte 6 # DWARF Unit Type (DW_UT_split_type) |
| 224 | +- .byte 8 # Address Size (in bytes) |
| 225 | +- .long 0 # Offset Into Abbrev. Section |
| 226 | +- .quad 5657452045627120676 # Type Signature |
| 227 | +- .long 25 # Type DIE Offset |
| 228 | +- .byte 2 # Abbrev [2] DW_TAG_type_unit |
| 229 | +- .byte 3 # Abbrev [3] DW_TAG_structure_type |
| 230 | +- .byte 0 # End Of Children Mark |
| 231 | +-.Ldebug_info_dwo_end0: |
| 232 | +- .section .debug_info.dwo,"e",@progbits |
| 233 | +- .long .Ldebug_info_dwo_end1-.Ldebug_info_dwo_start1 # Length of Unit |
| 234 | +-.Ldebug_info_dwo_start1: |
| 235 | +- .short 5 # DWARF version number |
| 236 | +- .byte 6 # DWARF Unit Type (DW_UT_split_type) |
| 237 | +- .byte 8 # Address Size (in bytes) |
| 238 | +- .long 0 # Offset Into Abbrev. Section |
| 239 | +- .quad -8528522068957683993 # Type Signature |
| 240 | +- .long 25 # Type DIE Offset |
| 241 | +- .byte 4 # Abbrev [4] DW_TAG_type_unit |
| 242 | +- .byte 5 # Abbrev [5] DW_TAG_structure_type |
| 243 | +- .byte 0 # End Of Children Mark |
| 244 | +-.Ldebug_info_dwo_end1: |
| 245 | +- .section .debug_info.dwo,"e",@progbits |
| 246 | +- .long .Ldebug_info_dwo_end2-.Ldebug_info_dwo_start2 # Length of Unit |
| 247 | +-.Ldebug_info_dwo_start2: |
| 248 | +- .short 5 # DWARF version number |
| 249 | +- .byte 5 # DWARF Unit Type (DW_UT_split_compile) |
| 250 | +- .byte 8 # Address Size (in bytes) |
| 251 | +- .long 0 # Offset Into Abbrev. Section |
| 252 | +- .quad 1152943841751211454 |
| 253 | +- .byte 1 # Abbrev [1] DW_TAG_compile_unit |
| 254 | +-.Ldebug_info_dwo_end2: |
| 255 | +- .section .debug_abbrev.dwo,"e",@progbits |
| 256 | +- .byte 1 # Abbreviation Code |
| 257 | +- .byte 17 # DW_TAG_compile_unit |
| 258 | +- .byte 0 # DW_CHILDREN_no |
| 259 | +- .byte 0 # EOM(1) |
| 260 | +- .byte 0 # EOM(2) |
| 261 | +- .byte 2 # Abbreviation Code |
| 262 | +- .byte 65 # DW_TAG_type_unit |
| 263 | +- .byte 1 # DW_CHILDREN_yes |
| 264 | +- .byte 0 # EOM |
| 265 | +- .byte 0 # EOM |
| 266 | +- .byte 4 # Abbreviation Code |
| 267 | +- .byte 65 # DW_TAG_type_unit |
| 268 | +- .byte 1 # DW_CHILDREN_yes |
| 269 | +- .byte 0 # EOM |
| 270 | +- .byte 0 # EOM |
| 271 | +- .byte 0 # EOM |
| 272 | +diff -ruN --strip-trailing-cr a/llvm/test/tools/llvm-dwp/X86/debug_macro_v5.s b/llvm/test/tools/llvm-dwp/X86/debug_macro_v5.s |
| 273 | +--- a/llvm/test/tools/llvm-dwp/X86/debug_macro_v5.s |
| 274 | ++++ b/llvm/test/tools/llvm-dwp/X86/debug_macro_v5.s |
| 275 | +@@ -2,8 +2,7 @@ |
| 276 | + |
| 277 | + # RUN: llvm-mc -triple x86_64-unknown-linux --filetype=obj --split-dwarf-file=%t.dwo -dwarf-version=5 %s -o %t.o |
| 278 | + # RUN: llvm-dwp %t.dwo -o %t.dwp 2>&1 |
| 279 | +-# RUN: llvm-dwarfdump -debug-macro -debug-cu-index %t.dwp | FileCheck -check-prefix=CHECK %s |
| 280 | +-# RUN: llvm-dwarfdump -debug-macro -debug-cu-index -manaully-generate-unit-index %t.dwp | FileCheck -check-prefix=CHECK2 %s |
| 281 | ++# RUN: llvm-dwarfdump -debug-macro -debug-cu-index %t.dwp | FileCheck %s |
| 282 | + |
| 283 | + # CHECK-DAG: .debug_macro.dwo contents: |
| 284 | + # CHECK: macro header: version = 0x0005, flags = 0x00, format = DWARF32 |
| 285 | +@@ -16,9 +15,6 @@ |
| 286 | + # CHECK: Index Signature INFO ABBREV STR_OFFSETS MACRO |
| 287 | + # CHECK: 1 0x0000000000000000 [0x0000000000000000, 0x0000000000000019) [0x00000000, 0x00000008) [0x00000000, 0x0000000c) [0x00000000, 0x0000000b) |
| 288 | + |
| 289 | +-# CHECK2: Index Signature INFO ABBREV STR_OFFSETS MACRO |
| 290 | +-# CHECK2: 1 0x0000000000000000 [0x0000000000000000, 0x0000000000000019) [0x00000000, 0x00000008) [0x00000000, 0x0000000c) [0x00000000, 0x0000000b) |
| 291 | +- |
| 292 | + .section .debug_info.dwo,"e",@progbits |
| 293 | + .long .Ldebug_info_dwo_end0-.Ldebug_info_dwo_start0 # Length of Unit |
| 294 | + .Ldebug_info_dwo_start0: |
| 295 | +diff -ruN --strip-trailing-cr a/llvm/test/tools/llvm-dwp/X86/type_dedup.test b/llvm/test/tools/llvm-dwp/X86/type_dedup.test |
| 296 | +--- a/llvm/test/tools/llvm-dwp/X86/type_dedup.test |
| 297 | ++++ b/llvm/test/tools/llvm-dwp/X86/type_dedup.test |
| 298 | +@@ -1,10 +1,8 @@ |
| 299 | + RUN: llvm-dwp %p/../Inputs/type_dedup/a.dwo %p/../Inputs/type_dedup/b.dwo -o %t |
| 300 | +-RUN: llvm-dwarfdump -v %t | FileCheck -check-prefix=CHECK %s |
| 301 | +-RUN: llvm-dwarfdump -v -manaully-generate-unit-index %t | FileCheck -check-prefix=CHECK2 %s |
| 302 | ++RUN: llvm-dwarfdump -v %t | FileCheck %s |
| 303 | + RUN: llvm-dwp %p/../Inputs/type_dedup/b.dwo -o %tb.dwp |
| 304 | + RUN: llvm-dwp %p/../Inputs/type_dedup/a.dwo %tb.dwp -o %t |
| 305 | +-RUN: llvm-dwarfdump -v %t | FileCheck -check-prefix=CHECK %s |
| 306 | +-RUN: llvm-dwarfdump -v -manaully-generate-unit-index %t | FileCheck -check-prefix=CHECK2 %s |
| 307 | ++RUN: llvm-dwarfdump -v %t | FileCheck %s |
| 308 | + |
| 309 | + a.cpp: |
| 310 | + struct common { }; |
| 311 | +@@ -38,24 +36,3 @@ |
| 312 | + CHECK: 0x00000066: DW_TAG_structure_type |
| 313 | + CHECK: DW_AT_name {{.*}} "bdistinct" |
| 314 | + CHECK-NOT: Type Unit |
| 315 | +- |
| 316 | +-CHECK2-LABEL: .debug_types.dwo contents: |
| 317 | +-CHECK2: [[COMMONUOFF:0x[0-9a-f]*]]: |
| 318 | +-CHECK2-LABEL: Type Unit: length = 0x00000020, format = DWARF32, version = 0x0004, abbr_offset = |
| 319 | +-CHECK2: 0x0000, addr_size = 0x08, name = 'common', type_signature = [[COMMONSIG:0x[0-9a-f]*]], type_offset = 0x[[COMMONOFF:.*]] (next unit at [[AUOFF:.*]]) |
| 320 | +-CHECK2: DW_TAG_type_unit |
| 321 | +-CHECK2: [[COMMONOFF]]: DW_TAG_structure_type |
| 322 | +-CHECK2: DW_AT_name {{.*}} "common" |
| 323 | +-CHECK2: [[AUOFF]]: |
| 324 | +-CHECK2-LABEL: Type Unit: length = 0x00000020, format = DWARF32, version = 0x0004, abbr_offset = |
| 325 | +-CHECK2: 0x0000, addr_size = 0x08, name = 'adistinct', type_signature = [[ASIG:0x[0-9a-f]*]], type_offset = 0x[[AOFF:.*]] (next unit at [[BUOFF:.*]]) |
| 326 | +-CHECK2: DW_TAG_type_unit |
| 327 | +-CHECK2: 0x00000042: DW_TAG_structure_type |
| 328 | +-CHECK2: DW_AT_name {{.*}} "adistinct" |
| 329 | +-CHECK2: [[BUOFF]]: |
| 330 | +-CHECK2-LABEL: Type Unit: length = 0x00000020, format = DWARF32, version = 0x0004, abbr_offset = |
| 331 | +-CHECK2: 0x{{.*}}, addr_size = 0x08, name = 'bdistinct', type_signature = [[BSIG:0x[0-9a-f]*]], type_offset = 0x[[BOFF:.*]] (next unit at [[XUOFF:.*]]) |
| 332 | +-CHECK2: DW_TAG_type_unit |
| 333 | +-CHECK2: 0x00000066: DW_TAG_structure_type |
| 334 | +-CHECK2: DW_AT_name {{.*}} "bdistinct" |
| 335 | +-CHECK2-NOT: Type Unit |
| 336 | +diff -ruN --strip-trailing-cr a/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp b/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp |
| 337 | +--- a/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp |
| 338 | ++++ b/llvm/tools/llvm-dwarfdump/llvm-dwarfdump.cpp |
| 339 | +@@ -249,13 +249,6 @@ |
| 340 | + cl::desc("Show the sizes of all debug sections, " |
| 341 | + "expressed in bytes."), |
| 342 | + cat(DwarfDumpCategory)); |
| 343 | +-static cl::opt<bool> ManuallyGenerateUnitIndex( |
| 344 | +- "manaully-generate-unit-index", |
| 345 | +- cl::desc("if the input is dwp file, parse .debug_info " |
| 346 | +- "section and use it to populate " |
| 347 | +- "DW_SECT_INFO contributions in cu-index. " |
| 348 | +- "For DWARF5 it also populated TU Index."), |
| 349 | +- cl::init(false), cl::Hidden, cl::cat(DwarfDumpCategory)); |
| 350 | + static cl::opt<bool> |
| 351 | + ShowSources("show-sources", |
| 352 | + cl::desc("Show the sources across all compilation units."), |
| 353 | +@@ -682,7 +675,6 @@ |
| 354 | + std::unique_ptr<DWARFContext> DICtx = DWARFContext::create( |
| 355 | + *Obj, DWARFContext::ProcessDebugRelocations::Process, nullptr, "", |
| 356 | + RecoverableErrorHandler); |
| 357 | +- DICtx->setParseCUTUIndexManually(ManuallyGenerateUnitIndex); |
| 358 | + if (!HandleObj(*Obj, *DICtx, Filename, OS)) |
| 359 | + Result = false; |
| 360 | + } |
| 361 | +diff -ruN --strip-trailing-cr a/utils/bazel/llvm-project-overlay/llvm/BUILD.bazel b/utils/bazel/llvm-project-overlay/llvm/BUILD.bazel |
| 362 | +--- a/utils/bazel/llvm-project-overlay/llvm/BUILD.bazel |
| 363 | ++++ b/utils/bazel/llvm-project-overlay/llvm/BUILD.bazel |
| 364 | +@@ -1063,6 +1063,18 @@ |
| 365 | + ], |
| 366 | + ) |
| 367 | + |
| 368 | ++gentbl( |
| 369 | ++ name = "RISCVTargetParserDefGen", |
| 370 | ++ tbl_outs = [("-gen-riscv-target-def", "include/llvm/TargetParser/RISCVTargetParserDef.inc")], |
| 371 | ++ tblgen = ":llvm-tblgen", |
| 372 | ++ td_file = "lib/Target/RISCV/RISCV.td", |
| 373 | ++ td_srcs = [ |
| 374 | ++ ":common_target_td_sources", |
| 375 | ++ ] + glob([ |
| 376 | ++ "lib/Target/RISCV/**/*.td", |
| 377 | ++ ]), |
| 378 | ++) |
| 379 | ++ |
| 380 | + cc_library( |
| 381 | + name = "TargetParser", |
| 382 | + srcs = glob([ |
| 383 | +@@ -1083,7 +1095,9 @@ |
| 384 | + ]), |
| 385 | + copts = llvm_copts, |
| 386 | + includes = ["include"], |
| 387 | +- textual_hdrs = glob([ |
| 388 | ++ textual_hdrs = [ |
| 389 | ++ "include/llvm/TargetParser/RISCVTargetParserDef.inc", |
| 390 | ++ ] + glob([ |
| 391 | + "include/llvm/TargetParser/*.def", |
| 392 | + ]), |
| 393 | + deps = [ |
0 commit comments