[llvm] r221842 - Revert "[dwarfdump] Add support for dumping accelerator tables."

David Blaikie dblaikie at gmail.com
Wed Nov 12 16:45:40 PST 2014


On Wed, Nov 12, 2014 at 4:15 PM, Frederic Riss <friss at apple.com> wrote:

> Author: friss
> Date: Wed Nov 12 18:15:15 2014
> New Revision: 221842
>
> URL: http://llvm.org/viewvc/llvm-project?rev=221842&view=rev
> Log:
> Revert "[dwarfdump] Add support for dumping accelerator tables."
>
> This reverts commit r221836.
>
> The tests are asserting on some buildbots. This also reverts the
> test part of r221837 as it relies on dwarfdump dumping the
> accelerator tables.
>

Just in case you missed it/haven't read it in my CR of r221836, the problem
is probably \/


>
> Removed:
>     llvm/trunk/lib/DebugInfo/DWARFAcceleratorTable.cpp
>     llvm/trunk/lib/DebugInfo/DWARFAcceleratorTable.h
>     llvm/trunk/test/DebugInfo/dwarfdump-accel.test
> Modified:
>     llvm/trunk/include/llvm/DebugInfo/DIContext.h
>     llvm/trunk/lib/DebugInfo/CMakeLists.txt
>     llvm/trunk/lib/DebugInfo/DWARFContext.cpp
>     llvm/trunk/lib/DebugInfo/DWARFContext.h
>     llvm/trunk/test/DebugInfo/Inputs/gmlt.ll
>     llvm/trunk/test/DebugInfo/cross-cu-inlining.ll
>     llvm/trunk/tools/llvm-dwarfdump/llvm-dwarfdump.cpp
>
> Modified: llvm/trunk/include/llvm/DebugInfo/DIContext.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/DebugInfo/DIContext.h?rev=221842&r1=221841&r2=221842&view=diff
>
> ==============================================================================
> --- llvm/trunk/include/llvm/DebugInfo/DIContext.h (original)
> +++ llvm/trunk/include/llvm/DebugInfo/DIContext.h Wed Nov 12 18:15:15 2014
> @@ -107,11 +107,7 @@ enum DIDumpType {
>    DIDT_GnuPubtypes,
>    DIDT_Str,
>    DIDT_StrDwo,
> -  DIDT_StrOffsetsDwo,
> -  DIDT_AppleNames,
> -  DIDT_AppleTypes,
> -  DIDT_AppleNamespaces,
> -  DIDT_AppleObjC
> +  DIDT_StrOffsetsDwo
>  };
>
>  // In place of applying the relocations to the data we've read from disk
> we use
>
> Modified: llvm/trunk/lib/DebugInfo/CMakeLists.txt
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/CMakeLists.txt?rev=221842&r1=221841&r2=221842&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/DebugInfo/CMakeLists.txt (original)
> +++ llvm/trunk/lib/DebugInfo/CMakeLists.txt Wed Nov 12 18:15:15 2014
> @@ -1,7 +1,6 @@
>  add_llvm_library(LLVMDebugInfo
>    DIContext.cpp
>    DWARFAbbreviationDeclaration.cpp
> -  DWARFAcceleratorTable.cpp
>    DWARFCompileUnit.cpp
>    DWARFContext.cpp
>    DWARFDebugAbbrev.cpp
>
> Removed: llvm/trunk/lib/DebugInfo/DWARFAcceleratorTable.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/DWARFAcceleratorTable.cpp?rev=221841&view=auto
>
> ==============================================================================
> --- llvm/trunk/lib/DebugInfo/DWARFAcceleratorTable.cpp (original)
> +++ llvm/trunk/lib/DebugInfo/DWARFAcceleratorTable.cpp (removed)
> @@ -1,110 +0,0 @@
> -#include "DWARFAcceleratorTable.h"
> -
> -#include "llvm/Support/Dwarf.h"
> -#include "llvm/Support/Format.h"
> -#include "llvm/Support/raw_ostream.h"
> -
> -namespace llvm {
> -
> -bool DWARFAcceleratorTable::extract() {
> -  uint32_t Offset = 0;
> -
> -  // Check that we can at least read the header.
> -  if (!AccelSection.isValidOffset(offsetof(Header, HeaderDataLength)+4))
> -    return false;
> -
> -  Hdr.Magic = AccelSection.getU32(&Offset);
> -  Hdr.Version = AccelSection.getU16(&Offset);
> -  Hdr.HashFunction = AccelSection.getU16(&Offset);
> -  Hdr.NumBuckets = AccelSection.getU32(&Offset);
> -  Hdr.NumHashes = AccelSection.getU32(&Offset);
> -  Hdr.HeaderDataLength = AccelSection.getU32(&Offset);
> -
> -  // Check that we can read all the hashes and offsets from the
> -  // section (see SourceLevelDebugging.rst for the structure of the
> index).
> -  if (!AccelSection.isValidOffset(sizeof(Hdr) + Hdr.HeaderDataLength +
> -                                  Hdr.NumBuckets*4 + Hdr.NumHashes*8))
> -    return false;
> -
> -  HdrData.DIEOffsetBase = AccelSection.getU32(&Offset);
> -  uint32_t NumAtoms = AccelSection.getU32(&Offset);
> -
> -  for (unsigned i = 0; i < NumAtoms; ++i) {
> -    auto Atom = std::make_pair(AccelSection.getU16(&Offset),
> -
>  DWARFFormValue(AccelSection.getU16(&Offset)));
>

This might not be portable ^ due to unspecified order of evaluation of
function arguments, this might read the fields in the wrong order
(dwarfdump built with GCC versus dwarfdump built with Clang would behave
differently)

-    HdrData.Atoms.push_back(Atom);
> -  }
> -
> -  return true;
> -}
> -
> -void DWARFAcceleratorTable::dump(raw_ostream &OS) {
> -  // Dump the header.
> -  OS << "Magic = " << format("0x%08x", Hdr.Magic) << '\n';
> -  OS << "Version = " << format("0x%04x", Hdr.Version) << '\n';
> -  OS << "Hash function = " << format("0x%08x", Hdr.HashFunction) << '\n';
> -  OS << "Bucket count = " << Hdr.NumBuckets << '\n';
> -  OS << "Hashes count = " << Hdr.NumHashes << '\n';
> -  OS << "HeaderData length = " << Hdr.HeaderDataLength << '\n';
> -  OS << "DIE offset base = " << HdrData.DIEOffsetBase << '\n';
> -  OS << "Number of atoms = " << HdrData.Atoms.size() << '\n';
> -
> -  unsigned i = 0;
> -  for (const auto &Atom: HdrData.Atoms) {
> -    OS << format("Atom[%d] ", i++);
> -    OS << " Type: " << dwarf::AtomTypeString(Atom.first);
> -    OS << " Form: " << dwarf::FormEncodingString(Atom.second.getForm());
> -    OS << "\n";
> -  }
> -
> -  // Now go through the actual tables and dump them.
> -  uint32_t Offset = sizeof(Hdr) + Hdr.HeaderDataLength;
> -  unsigned HashesBase = Offset + Hdr.NumBuckets * 4;
> -  unsigned OffsetsBase = HashesBase + Hdr.NumHashes * 4;
> -
> -  for (unsigned Bucket = 0; Bucket < Hdr.NumBuckets; ++Bucket) {
> -    unsigned Index;
> -    Index = AccelSection.getU32(&Offset);
> -
> -    OS << format("Bucket[%d]\n", Bucket);
> -    if (Index == UINT32_MAX) {
> -      OS << "  EMPTY\n";
> -      continue;
> -    }
> -
> -    for (unsigned HashIdx = Index; HashIdx < Hdr.NumHashes; ++HashIdx) {
> -      unsigned HashOffset = HashesBase + HashIdx*4;
> -      unsigned OffsetsOffset = OffsetsBase + HashIdx*4;
> -      uint32_t Hash = AccelSection.getU32(&HashOffset);
> -
> -      if (Hash % Hdr.NumBuckets != Bucket)
> -        break;
> -
> -      unsigned DataOffset = AccelSection.getU32(&OffsetsOffset);
> -      OS << format("  Hash = 0x%08x Offset = 0x%08x\n", Hash, DataOffset);
> -      if (!AccelSection.isValidOffset(DataOffset)) {
> -        OS << "    Invalid section offset\n";
> -        continue;
> -      }
> -      while (unsigned StringOffset = AccelSection.getU32(&DataOffset)) {
> -        OS << format("    Name: %08x \"%s\"\n", StringOffset,
> -                     StringSection.getCStr(&StringOffset));
> -        unsigned NumData = AccelSection.getU32(&DataOffset);
> -        for (unsigned Data = 0; Data < NumData; ++Data) {
> -          OS << format("    Data[%d] => ", Data);
> -          unsigned i = 0;
> -          for (auto &Atom : HdrData.Atoms) {
> -            OS << format("{Atom[%d]: ", i++);
> -            if (Atom.second.extractValue(AccelSection, &DataOffset,
> nullptr))
> -              Atom.second.dump(OS, nullptr);
> -            else
> -              OS << "Error extracting the value";
> -            OS << "} ";
> -          }
> -          OS << '\n';
> -        }
> -      }
> -    }
> -  }
> -}
> -}
>
> Removed: llvm/trunk/lib/DebugInfo/DWARFAcceleratorTable.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/DWARFAcceleratorTable.h?rev=221841&view=auto
>
> ==============================================================================
> --- llvm/trunk/lib/DebugInfo/DWARFAcceleratorTable.h (original)
> +++ llvm/trunk/lib/DebugInfo/DWARFAcceleratorTable.h (removed)
> @@ -1,38 +0,0 @@
> -
> -#include "llvm/ADT/SmallVector.h"
> -#include "llvm/DebugInfo/DWARFFormValue.h"
> -
> -#include <cstdint>
> -
> -namespace llvm {
> -
> -class DWARFAcceleratorTable {
> -
> -  struct Header {
> -    uint32_t Magic;
> -    uint16_t Version;
> -    uint16_t HashFunction;
> -    uint32_t NumBuckets;
> -    uint32_t NumHashes;
> -    uint32_t HeaderDataLength;
> -  };
> -
> -  struct HeaderData {
> -    typedef uint16_t AtomType;
> -    uint32_t DIEOffsetBase;
> -    SmallVector<std::pair<AtomType, DWARFFormValue>, 1> Atoms;
> -  };
> -
> -  struct Header Hdr;
> -  struct HeaderData HdrData;
> -  DataExtractor AccelSection;
> -  DataExtractor StringSection;
> -public:
> -  DWARFAcceleratorTable(DataExtractor AccelSection, DataExtractor
> StringSection)
> -    : AccelSection(AccelSection), StringSection(StringSection) {}
> -
> -  bool extract();
> -  void dump(raw_ostream &OS);
> -};
> -
> -}
>
> Modified: llvm/trunk/lib/DebugInfo/DWARFContext.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/DWARFContext.cpp?rev=221842&r1=221841&r2=221842&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/DebugInfo/DWARFContext.cpp (original)
> +++ llvm/trunk/lib/DebugInfo/DWARFContext.cpp Wed Nov 12 18:15:15 2014
> @@ -9,7 +9,6 @@
>
>  #include "DWARFContext.h"
>  #include "DWARFDebugArangeSet.h"
> -#include "DWARFAcceleratorTable.h"
>
>  #include "llvm/ADT/SmallString.h"
>  #include "llvm/ADT/StringSwitch.h"
> @@ -60,17 +59,6 @@ static void dumpPubSection(raw_ostream &
>    }
>  }
>
> -static void dumpAccelSection(raw_ostream &OS, StringRef Name, StringRef
> Data,
> -                             StringRef StringSection, bool LittleEndian) {
> -  DataExtractor AccelSection(Data, LittleEndian, 0);
> -  DataExtractor StrData(StringSection, LittleEndian, 0);
> -  OS << "\n." << Name << " contents:\n";
> -  DWARFAcceleratorTable Accel(AccelSection, StrData);
> -  if (!Accel.extract())
> -    return;
> -  Accel.dump(OS);
> -}
> -
>  void DWARFContext::dump(raw_ostream &OS, DIDumpType DumpType) {
>    if (DumpType == DIDT_All || DumpType == DIDT_Abbrev) {
>      OS << ".debug_abbrev contents:\n";
> @@ -230,22 +218,6 @@ void DWARFContext::dump(raw_ostream &OS,
>        OS << format("%8.8x\n", strOffsetExt.getU32(&offset));
>      }
>    }
> -
> -  if (DumpType == DIDT_All || DumpType == DIDT_AppleNames)
> -    dumpAccelSection(OS, "apple_names", getAppleNamesSection(),
> -                     getStringSection(), isLittleEndian());
> -
> -  if (DumpType == DIDT_All || DumpType == DIDT_AppleTypes)
> -    dumpAccelSection(OS, "apple_types", getAppleTypesSection(),
> -                     getStringSection(), isLittleEndian());
> -
> -  if (DumpType == DIDT_All || DumpType == DIDT_AppleNamespaces)
> -    dumpAccelSection(OS, "apple_namespaces", getAppleNamespacesSection(),
> -                     getStringSection(), isLittleEndian());
> -
> -  if (DumpType == DIDT_All || DumpType == DIDT_AppleObjC)
> -    dumpAccelSection(OS, "apple_objc", getAppleObjCSection(),
> -                     getStringSection(), isLittleEndian());
>  }
>
>  const DWARFDebugAbbrev *DWARFContext::getDebugAbbrev() {
> @@ -593,11 +565,6 @@ DWARFContextInMemory::DWARFContextInMemo
>              .Case("debug_str.dwo", &StringDWOSection)
>              .Case("debug_str_offsets.dwo", &StringOffsetDWOSection)
>              .Case("debug_addr", &AddrSection)
> -            .Case("apple_names", &AppleNamesSection)
> -            .Case("apple_types", &AppleTypesSection)
> -            .Case("apple_namespaces", &AppleNamespacesSection)
> -            .Case("apple_namespac", &AppleNamespacesSection)
> -            .Case("apple_objc", &AppleObjCSection)
>              // Any more debug info sections go here.
>              .Default(nullptr);
>      if (SectionData) {
>
> Modified: llvm/trunk/lib/DebugInfo/DWARFContext.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/DWARFContext.h?rev=221842&r1=221841&r2=221842&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/DebugInfo/DWARFContext.h (original)
> +++ llvm/trunk/lib/DebugInfo/DWARFContext.h Wed Nov 12 18:15:15 2014
> @@ -192,10 +192,6 @@ public:
>    virtual StringRef getStringOffsetDWOSection() = 0;
>    virtual StringRef getRangeDWOSection() = 0;
>    virtual StringRef getAddrSection() = 0;
> -  virtual StringRef getAppleNamesSection() = 0;
> -  virtual StringRef getAppleTypesSection() = 0;
> -  virtual StringRef getAppleNamespacesSection() = 0;
> -  virtual StringRef getAppleObjCSection() = 0;
>
>    static bool isSupportedVersion(unsigned version) {
>      return version == 2 || version == 3 || version == 4;
> @@ -240,10 +236,6 @@ class DWARFContextInMemory : public DWAR
>    StringRef StringOffsetDWOSection;
>    StringRef RangeDWOSection;
>    StringRef AddrSection;
> -  StringRef AppleNamesSection;
> -  StringRef AppleTypesSection;
> -  StringRef AppleNamespacesSection;
> -  StringRef AppleObjCSection;
>
>    SmallVector<SmallString<32>, 4> UncompressedSections;
>
> @@ -264,10 +256,6 @@ public:
>    StringRef getPubTypesSection() override { return PubTypesSection; }
>    StringRef getGnuPubNamesSection() override { return GnuPubNamesSection;
> }
>    StringRef getGnuPubTypesSection() override { return GnuPubTypesSection;
> }
> -  StringRef getAppleNamesSection() override { return AppleNamesSection; }
> -  StringRef getAppleTypesSection() override { return AppleTypesSection; }
> -  StringRef getAppleNamespacesSection() override { return
> AppleNamespacesSection; }
> -  StringRef getAppleObjCSection() override { return AppleObjCSection; }
>
>    // Sections for DWARF5 split dwarf proposal.
>    const DWARFSection &getInfoDWOSection() override { return
> InfoDWOSection; }
>
> Modified: llvm/trunk/test/DebugInfo/Inputs/gmlt.ll
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/Inputs/gmlt.ll?rev=221842&r1=221841&r2=221842&view=diff
>
> ==============================================================================
> --- llvm/trunk/test/DebugInfo/Inputs/gmlt.ll (original)
> +++ llvm/trunk/test/DebugInfo/Inputs/gmlt.ll Wed Nov 12 18:15:15 2014
> @@ -95,8 +95,6 @@
>  ; CHECK: .debug_pubtypes contents:
>  ; CHECK-NOT: Offset
>
> -; CHECK: .apple{{.*}} contents:
> -
>  ; Function Attrs: nounwind uwtable
>  define void @_Z2f1v() #0 {
>  entry:
>
> Modified: llvm/trunk/test/DebugInfo/cross-cu-inlining.ll
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/cross-cu-inlining.ll?rev=221842&r1=221841&r2=221842&view=diff
>
> ==============================================================================
> --- llvm/trunk/test/DebugInfo/cross-cu-inlining.ll (original)
> +++ llvm/trunk/test/DebugInfo/cross-cu-inlining.ll Wed Nov 12 18:15:15 2014
> @@ -1,7 +1,6 @@
>  ; REQUIRES: object-emission
>
>  ; RUN: %llc_dwarf -O0 -filetype=obj < %s | llvm-dwarfdump
> -debug-dump=info - | FileCheck -implicit-check-not=DW_TAG %s
> -; RUN: %llc_dwarf -O0 -filetype=obj < %s | llvm-dwarfdump - | FileCheck
> --check-prefix=CHECK-ACCEL --check-prefix=CHECK %s
>
>  ; Build from source:
>  ; $ clang++ a.cpp b.cpp -g -c -emit-llvm
> @@ -53,18 +52,6 @@
>  ; CHECK:     DW_AT_location
>  ; CHECK:     DW_AT_abstract_origin {{.*}} {0x[[ABS_VAR]]} "x"
>
> -; CHECK-ACCEL: .apple_names contents:
> -; CHECK-ACCEL: Name{{.*}}"func"
> -; CHECK-ACCEL-NOT: Name
> -; CHECK-ACCEL: Atom[0]{{.*}}[[INLINED]]
> -; CHECK-ACCEL-NOT: Name
> -; CHECK-ACCEL: Atom[0]{{.*}}[[FUNC]]
> -
> -; CHECK-ACCEL: .apple_types contents:
> -; CHECK-ACCEL: Name{{.*}}"int"
> -; CHECK-ACCEL-NOT: Name
> -; CHECK-ACCEL: Atom[0]{{.*}}[[INT]]
> -
>  @i = external global i32
>
>  ; Function Attrs: uwtable
>
> Removed: llvm/trunk/test/DebugInfo/dwarfdump-accel.test
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/test/DebugInfo/dwarfdump-accel.test?rev=221841&view=auto
>
> ==============================================================================
> --- llvm/trunk/test/DebugInfo/dwarfdump-accel.test (original)
> +++ llvm/trunk/test/DebugInfo/dwarfdump-accel.test (removed)
> @@ -1,154 +0,0 @@
> -RUN: llvm-dwarfdump %p/Inputs/dwarfdump-objc.x86_64.o | FileCheck %s
> -
> -CHECK: .apple_names contents:
> -CHECK: Magic = 0x48415348
> -CHECK: Version = 0x0001
> -CHECK: Hash function = 0x00000000
> -CHECK: Bucket count = 11
> -CHECK: Hashes count = 22
> -CHECK: HeaderData length = 12
> -CHECK: DIE offset base = 0
> -CHECK: Number of atoms = 1
> -CHECK: Atom[0]  Type: DW_ATOM_die_offset Form: DW_FORM_data4
> -CHECK: Bucket[0]
> -CHECK:   Hash = 0x248050fe Offset = 0x000000fc
> -CHECK:     Name: 00000165 "-[TestInterface Retain]"
> -CHECK:     Data[0] => {Atom[0]: 0x0000024f}
> -CHECK: Bucket[1]
> -CHECK:   Hash = 0x926d42cc Offset = 0x0000010c
> -CHECK:     Name: 00000057 "ReadWrite"
> -CHECK:     Data[0] => {Atom[0]: 0x000001cb}
> -CHECK: Bucket[2]
> -CHECK:   EMPTY
> -CHECK: Bucket[3]
> -CHECK:   Hash = 0x99254268 Offset = 0x0000011c
> -CHECK:     Name: 0000013f "-[TestInterface setReadWrite:]"
> -CHECK:     Data[0] => {Atom[0]: 0x00000209}
> -CHECK:   Hash = 0x946f52b9 Offset = 0x0000012c
> -CHECK:     Name: 000000c6 "-[TestInterface ReadOnly]"
> -CHECK:     Data[0] => {Atom[0]: 0x00000109}
> -CHECK: Bucket[4]
> -CHECK:   EMPTY
> -CHECK: Bucket[5]
> -CHECK:   EMPTY
> -CHECK: Bucket[6]
> -CHECK:   Hash = 0x6e8e91a3 Offset = 0x0000013c
> -CHECK:     Name: 000001e0 "-[TestInterface NonAtomic]"
> -CHECK:     Data[0] => {Atom[0]: 0x00000357}
> -CHECK:   Hash = 0x7d1a5012 Offset = 0x0000014c
> -CHECK:     Name: 0000014d "setReadWrite:"
> -CHECK:     Data[0] => {Atom[0]: 0x00000209}
> -CHECK:   Hash = 0xb65f49d3 Offset = 0x0000015c
> -CHECK:     Name: 0000020d "setNonAtomic:"
> -CHECK:     Data[0] => {Atom[0]: 0x00000395}
> -CHECK:   Hash = 0x354997e2 Offset = 0x0000016c
> -CHECK:     Name: 00000120 "-[TestInterface ReadWrite]"
> -CHECK:     Data[0] => {Atom[0]: 0x000001cb}
> -CHECK: Bucket[7]
> -CHECK:   Hash = 0xce8af9c8 Offset = 0x0000017c
> -CHECK:     Name: 0000005e "Retain"
> -CHECK:     Data[0] => {Atom[0]: 0x0000024f}
> -CHECK:   Hash = 0xa7e0338a Offset = 0x0000018c
> -CHECK:     Name: 0000004d "Assign"
> -CHECK:     Data[0] => {Atom[0]: 0x00000147}
> -CHECK:   Hash = 0xa9812410 Offset = 0x0000019c
> -CHECK:     Name: 00000105 "setAssign:"
> -CHECK:     Data[0] => {Atom[0]: 0x00000185}
> -CHECK:   Hash = 0x218d07f6 Offset = 0x000001ac
> -CHECK:     Name: 000001a2 "-[TestInterface Copy]"
> -CHECK:     Data[0] => {Atom[0]: 0x000002d3}
> -CHECK:   Hash = 0x0456817c Offset = 0x000001bc
> -CHECK:     Name: 000001bc "-[TestInterface setCopy:]"
> -CHECK:     Data[0] => {Atom[0]: 0x00000311}
> -CHECK:   Hash = 0x7c83b400 Offset = 0x000001cc
> -CHECK:     Name: 0000006c "Copy"
> -CHECK:     Data[0] => {Atom[0]: 0x000002d3}
> -CHECK: Bucket[8]
> -CHECK:   Hash = 0x0f918046 Offset = 0x000001dc
> -CHECK:     Name: 000001c5 "setCopy:"
> -CHECK:     Data[0] => {Atom[0]: 0x00000311}
> -CHECK:   Hash = 0xfb097449 Offset = 0x000001ec
> -CHECK:     Name: 000001ff "-[TestInterface setNonAtomic:]"
> -CHECK:     Data[0] => {Atom[0]: 0x00000395}
> -CHECK:   Hash = 0x71069de3 Offset = 0x000001fc
> -CHECK:     Name: 00000042 "ReadOnly"
> -CHECK:     Data[0] => {Atom[0]: 0x00000109}
> -CHECK: Bucket[9]
> -CHECK:   Hash = 0xd55908c6 Offset = 0x0000020c
> -CHECK:     Name: 000000fa "-[TestInterface setAssign:]"
> -CHECK:     Data[0] => {Atom[0]: 0x00000185}
> -CHECK:   Hash = 0xa584b20e Offset = 0x0000021c
> -CHECK:     Name: 0000018c "setRetain:"
> -CHECK:     Data[0] => {Atom[0]: 0x0000028d}
> -CHECK:   Hash = 0x9429886d Offset = 0x0000022c
> -CHECK:     Name: 00000076 "NonAtomic"
> -CHECK:     Data[0] => {Atom[0]: 0x00000357}
> -CHECK:   Hash = 0x287cc300 Offset = 0x0000023c
> -CHECK:     Name: 000000de "-[TestInterface Assign]"
> -CHECK:     Data[0] => {Atom[0]: 0x00000147}
> -CHECK:   Hash = 0x51ce5684 Offset = 0x0000024c
> -CHECK:     Name: 00000181 "-[TestInterface setRetain:]"
> -CHECK:     Data[0] => {Atom[0]: 0x0000028d}
> -CHECK: Bucket[10]
> -CHECK:   EMPTY
> -
> -
> -CHECK: .apple_types contents:
> -CHECK: Magic = 0x48415348
> -CHECK: Version = 0x0001
> -CHECK: Hash function = 0x00000000
> -CHECK: Bucket count = 4
> -CHECK: Hashes count = 4
> -CHECK: HeaderData length = 20
> -CHECK: DIE offset base = 0
> -CHECK: Number of atoms = 3
> -CHECK: Atom[0]  Type: DW_ATOM_die_offset Form: DW_FORM_data4
> -CHECK: Atom[1]  Type: DW_ATOM_die_tag Form: DW_FORM_data2
> -CHECK: Atom[2]  Type: DW_ATOM_type_flags Form: DW_FORM_data1
> -CHECK: Bucket[0]
> -CHECK:   Hash = 0x0b888030 Offset = 0x00000058
> -CHECK:     Name: 00000046 "int"
> -CHECK:     Data[0] => {Atom[0]: 0x000000f4} {Atom[1]: 0x0024} {Atom[2]:
> 0x00}
> -CHECK: Bucket[1]
> -CHECK:   Hash = 0x0b881d29 Offset = 0x0000006b
> -CHECK:     Name: 0000021b "SEL"
> -CHECK:     Data[0] => {Atom[0]: 0x000003e0} {Atom[1]: 0x0016} {Atom[2]:
> 0x00}
> -CHECK:   Hash = 0x2c549f3d Offset = 0x0000007e
> -CHECK:     Name: 00000067 "NSObject"
> -CHECK:     Data[0] => {Atom[0]: 0x00000100} {Atom[1]: 0x0013} {Atom[2]:
> 0x00}
> -CHECK: Bucket[2]
> -CHECK:   Hash = 0x16a83cb6 Offset = 0x00000091
> -CHECK:     Name: 00000039 "TestInterface"
> -CHECK:     Data[0] => {Atom[0]: 0x0000002f} {Atom[1]: 0x0013} {Atom[2]:
> 0x00}
> -CHECK: Bucket[3]
> -CHECK:   EMPTY
> -
> -
> -CHECK: .apple_namespaces contents:
> -CHECK-NOT: Magic
> -
> -
> -CHECK: .apple_objc contents:
> -CHECK: Magic = 0x48415348
> -CHECK: Version = 0x0001
> -CHECK: Hash function = 0x00000000
> -CHECK: Bucket count = 1
> -CHECK: Hashes count = 1
> -CHECK: HeaderData length = 12
> -CHECK: DIE offset base = 0
> -CHECK: Number of atoms = 1
> -CHECK: Atom[0]  Type: DW_ATOM_die_offset Form: DW_FORM_data4
> -CHECK: Bucket[0]
> -CHECK:   Hash = 0x16a83cb6 Offset = 0x0000002c
> -CHECK:     Name: 00000039 "TestInterface"
> -CHECK:     Data[0] => {Atom[0]: 0x00000109}
> -CHECK:     Data[1] => {Atom[0]: 0x00000147}
> -CHECK:     Data[2] => {Atom[0]: 0x00000185}
> -CHECK:     Data[3] => {Atom[0]: 0x000001cb}
> -CHECK:     Data[4] => {Atom[0]: 0x00000209}
> -CHECK:     Data[5] => {Atom[0]: 0x0000024f}
> -CHECK:     Data[6] => {Atom[0]: 0x0000028d}
> -CHECK:     Data[7] => {Atom[0]: 0x000002d3}
> -CHECK:     Data[8] => {Atom[0]: 0x00000311}
> -CHECK:     Data[9] => {Atom[0]: 0x00000357}
> -CHECK:     Data[10] => {Atom[0]: 0x00000395}
> \ No newline at end of file
>
> Modified: llvm/trunk/tools/llvm-dwarfdump/llvm-dwarfdump.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-dwarfdump/llvm-dwarfdump.cpp?rev=221842&r1=221841&r2=221842&view=diff
>
> ==============================================================================
> --- llvm/trunk/tools/llvm-dwarfdump/llvm-dwarfdump.cpp (original)
> +++ llvm/trunk/tools/llvm-dwarfdump/llvm-dwarfdump.cpp Wed Nov 12 18:15:15
> 2014
> @@ -45,10 +45,6 @@ DumpType("debug-dump", cl::init(DIDT_All
>          clEnumValN(DIDT_All, "all", "Dump all debug sections"),
>          clEnumValN(DIDT_Abbrev, "abbrev", ".debug_abbrev"),
>          clEnumValN(DIDT_AbbrevDwo, "abbrev.dwo", ".debug_abbrev.dwo"),
> -        clEnumValN(DIDT_AppleNames, "apple_names", ".apple_names"),
> -        clEnumValN(DIDT_AppleTypes, "apple_types", ".apple_types"),
> -        clEnumValN(DIDT_AppleNamespaces, "apple_namespaces",
> ".apple_namespaces"),
> -        clEnumValN(DIDT_AppleObjC, "apple_objc", ".apple_objc"),
>          clEnumValN(DIDT_Aranges, "aranges", ".debug_aranges"),
>          clEnumValN(DIDT_Info, "info", ".debug_info"),
>          clEnumValN(DIDT_InfoDwo, "info.dwo", ".debug_info.dwo"),
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141112/61b0b41a/attachment.html>


More information about the llvm-commits mailing list