From: David Blaikie Date: Thu, 12 Nov 2015 06:33:14 +0000 (+0000) Subject: Mostly revert 252842 due to failures on some buildbots. X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=commitdiff_plain;h=c65ca6797f951b6c8b113aa234ab42e0a6d5a3d3 Mostly revert 252842 due to failures on some buildbots. I imagine there's some UB in here somewhere, though Valgrind doesn't seem to have picked it up (not sure if I have a working asan build right now to test there). GDB bot seems to be crashing: http://lab.llvm.org:8011/builders/clang-x86_64-ubuntu-gdb-75/builds/26267/steps/check-all/logs/FAIL%3A%20LLVM%3A%3Adwarfdump-dwp.test Hexagon ELF bot is, presumably, just getting different output: http://lab.llvm.org:8011/builders/clang-hexagon-elf/builds/32927/steps/check-all/logs/FAIL%3A%20LLVM%3A%3Adwarfdump-dwp.test git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@252859 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp b/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp index 0bb786d7b72..f97a68f860a 100644 --- a/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp +++ b/lib/DebugInfo/DWARF/DWARFUnitIndex.cpp @@ -26,7 +26,10 @@ bool DWARFUnitIndex::Header::parse(DataExtractor IndexData, } void DWARFUnitIndex::Header::dump(raw_ostream &OS) const { - OS << format("version = %u slots = %u\n\n", Version, NumBuckets); + OS << "Index header:\n" << format(" version: %u\n", Version) + << format(" columns: %u\n", NumColumns) + << format(" units: %u\n", NumUnits) + << format(" buckets: %u\n", NumBuckets); } bool DWARFUnitIndex::parse(DataExtractor IndexData) { @@ -39,45 +42,6 @@ bool DWARFUnitIndex::parse(DataExtractor IndexData) { (2 * Header.NumUnits + 1) * 4 * Header.NumColumns)) return false; - Rows = llvm::make_unique(Header.NumBuckets); - auto Contribs = - llvm::make_unique(Header.NumUnits); - ColumnKinds = llvm::make_unique(Header.NumColumns); - - // Read Hash Table of Signatures - for (unsigned i = 0; i != Header.NumBuckets; ++i) - Rows[i].Signature = IndexData.getU64(&Offset); - - // Read Parallel Table of Indexes - for (unsigned i = 0; i != Header.NumBuckets; ++i) { - auto Index = IndexData.getU32(&Offset); - if (!Index) - continue; - Rows[i].Contributions = - llvm::make_unique(Header.NumColumns); - Contribs[Index - 1] = Rows[i].Contributions.get(); - } - - // Read the Column Headers - for (unsigned i = 0; i != Header.NumColumns; ++i) - ColumnKinds[i] = static_cast(IndexData.getU32(&Offset)); - - // Read Table of Section Offsets - for (unsigned i = 0; i != Header.NumUnits; ++i) { - auto *Contrib = Contribs[i]; - for (unsigned i = 0; i != Header.NumColumns; ++i) { - Contrib[i].Offset = IndexData.getU32(&Offset); - } - } - - // Read Table of Section Sizes - for (unsigned i = 0; i != Header.NumUnits; ++i) { - auto *Contrib = Contribs[i]; - for (unsigned i = 0; i != Header.NumColumns; ++i) { - Contrib[i].Size = IndexData.getU32(&Offset); - } - } - return true; } @@ -100,24 +64,6 @@ StringRef DWARFUnitIndex::getColumnHeader(DwarfSection DS) { void DWARFUnitIndex::dump(raw_ostream &OS) const { Header.dump(OS); - OS << "Index Signature "; - for (unsigned i = 0; i != Header.NumColumns; ++i) - OS << format(" %-24s", getColumnHeader(ColumnKinds[i])); - OS << "\n----- ------------------"; - for (unsigned i = 0; i != Header.NumColumns; ++i) - OS << " ------------------------"; - OS << '\n'; - for (unsigned i = 0; i != Header.NumBuckets; ++i) { - auto &Row = Rows[i]; - if (auto *Contribs = Row.Contributions.get()) { - OS << format("%5u 0x%016" PRIx64 " ", i, Row.Signature); - for (unsigned i = 0; i != Header.NumColumns; ++i) { - auto &Contrib = Contribs[i]; - OS << format("[0x%08u, 0x%08u) ", Contrib.Offset, - Contrib.Offset + Contrib.Size); - } - OS << '\n'; - } - } } + } diff --git a/test/DebugInfo/dwarfdump-dwp.test b/test/DebugInfo/dwarfdump-dwp.test index 953a58cb4af..07c3b3399f7 100644 --- a/test/DebugInfo/dwarfdump-dwp.test +++ b/test/DebugInfo/dwarfdump-dwp.test @@ -9,17 +9,17 @@ RUN: llvm-dwarfdump %p/Inputs/dwarfdump-dwp.x86_64.o | FileCheck %s ; bar b; ; CHECK: .debug_cu_index contents: -; CHECK-NEXT: version = 2 slots = 16 -; CHECK: Index Signature INFO ABBREV LINE STR_OFFSETS -; CHECK-NEXT: ----- ------------------ ------------------------ ------------------------ ------------------------ ------------------------ -; CHECK-NEXT: 8 0x03c30756e2d45008 [0x00000000, 0x00000045) [0x00000000, 0x00000067) [0x00000000, 0x00000026) [0x00000000, 0x00000016) -; CHECK-NEXT: 12 0x9aeb3a61ed48510c [0x00000045, 0x00000090) [0x00000067, 0x00000134) [0x00000026, 0x00000052) [0x00000016, 0x00000032) +; CHECK-NEXT: Index header: +; CHECK-NEXT: version: 2 +; CHECK-NEXT: columns: 4 +; CHECK-NEXT: units: 2 +; CHECK-NEXT: buckets: 16 ; CHECK: .debug_tu_index contents: -; CHECK-NEXT: version = 2 slots = 16 -; CHECK: Index Signature TYPES ABBREV LINE STR_OFFSETS -; CHECK-NEXT: ----- ------------------ ------------------------ ------------------------ ------------------------ ------------------------ -; CHECK-NEXT: 8 0x1d02f3be30cc5688 [0x00000036, 0x00000072) [0x00000067, 0x00000134) [0x00000026, 0x00000052) [0x00000016, 0x00000032) -; CHECK-NEXT: 12 0x3875c0e21cda63fc [0x00000000, 0x00000036) [0x00000000, 0x00000067) [0x00000000, 0x00000026) [0x00000000, 0x00000016) +; CHECK-NEXT: Index header: +; CHECK-NEXT: version: 2 +; CHECK-NEXT: columns: 4 +; CHECK-NEXT: units: 2 +; CHECK-NEXT: buckets: 16 ; TODO: use the index section offset info to correctly dump debug_info