diff options
author | David Blaikie <dblaikie@gmail.com> | 2013-12-13 01:06:41 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2013-12-13 01:06:41 +0000 |
commit | f4597a0cd46ca119ca955237b847a990b1be9358 (patch) | |
tree | cde547fdc4a8e0d35c3484182b4e5d9fd94106fd /include | |
parent | 363c1ec574c8e97f3c63771ed0bafc5441c7bf56 (diff) | |
download | llvm-f4597a0cd46ca119ca955237b847a990b1be9358.tar.gz llvm-f4597a0cd46ca119ca955237b847a990b1be9358.tar.bz2 llvm-f4597a0cd46ca119ca955237b847a990b1be9358.tar.xz |
DebugInfo: Move type units into the debug_types section with appropriate comdat grouping and type unit headers
This commit does not complete the type units feature - there are issues
around fission support (skeletal type units, pubtypes/pubnames) and
hashing of some types including those containing references to types in
other type units.
Originally committed as r197073 and reverted in r197079.
This commit originally got jumbled up with another build-breaking commit
and I can't find the failures I thought this caused anymore.
Recommitting to hopefully get some clean buildbot results to work from.
I have a sneaking suspicion there's unstable output in the comdat group
output of MCStreamer...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197197 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r-- | include/llvm/MC/MCObjectFileInfo.h | 2 | ||||
-rw-r--r-- | include/llvm/MC/MCSectionELF.h | 8 |
2 files changed, 9 insertions, 1 deletions
diff --git a/include/llvm/MC/MCObjectFileInfo.h b/include/llvm/MC/MCObjectFileInfo.h index 277ca579da..7734a157f5 100644 --- a/include/llvm/MC/MCObjectFileInfo.h +++ b/include/llvm/MC/MCObjectFileInfo.h @@ -262,6 +262,8 @@ public: const MCSection *getDwarfInfoDWOSection() const { return DwarfInfoDWOSection; } + const MCSection *getDwarfTypesSection(uint64_t Hash) const; + const MCSection *getDwarfTypesDWOSection(uint64_t Hash) const; const MCSection *getDwarfAbbrevDWOSection() const { return DwarfAbbrevDWOSection; } diff --git a/include/llvm/MC/MCSectionELF.h b/include/llvm/MC/MCSectionELF.h index 59799158ad..139adbf45c 100644 --- a/include/llvm/MC/MCSectionELF.h +++ b/include/llvm/MC/MCSectionELF.h @@ -16,6 +16,7 @@ #include "llvm/ADT/StringRef.h" #include "llvm/MC/MCSection.h" +#include "llvm/MC/MCSymbol.h" #include "llvm/Support/Debug.h" #include "llvm/Support/ELF.h" #include "llvm/Support/raw_ostream.h" @@ -60,8 +61,13 @@ public: StringRef getSectionName() const { return SectionName; } virtual std::string getLabelBeginName() const { - return SectionName.str() + "_begin"; } + if (Group) + return (SectionName.str() + '_' + Group->getName() + "_begin").str(); + return SectionName.str() + "_begin"; + } virtual std::string getLabelEndName() const { + if (Group) + return (SectionName.str() + '_' + Group->getName() + "_end").str(); return SectionName.str() + "_end"; } unsigned getType() const { return Type; } |