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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@197073 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
David Blaikie
2013-12-11 21:36:27 +00:00
parent bd71b0a161
commit 3d2670cc54
8 changed files with 93 additions and 29 deletions

View File

@ -9,6 +9,7 @@
#include "llvm/MC/MCObjectFileInfo.h"
#include "llvm/ADT/Triple.h"
#include "llvm/ADT/StringExtras.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCSection.h"
#include "llvm/MC/MCSectionCOFF.h"
@ -718,6 +719,17 @@ void MCObjectFileInfo::InitMCObjectFileInfo(StringRef TT, Reloc::Model relocm,
}
}
const MCSection *MCObjectFileInfo::getDwarfTypesSection(uint64_t Hash) const {
return Ctx->getELFSection(".debug_types", ELF::SHT_PROGBITS, ELF::SHF_GROUP,
SectionKind::getMetadata(), 0, utostr(Hash));
}
const MCSection *
MCObjectFileInfo::getDwarfTypesDWOSection(uint64_t Hash) const {
return Ctx->getELFSection(".debug_types.dwo", ELF::SHT_GROUP, 0,
SectionKind::getMetadata(), 0, utostr(Hash));
}
void MCObjectFileInfo::InitEHFrameSection() {
if (Env == IsMachO)
EHFrameSection =