[llvm] r217128 - Add a DWARFContext& member in DWARFUnit.
Justin Bogner
mail at justinbogner.com
Wed Sep 3 23:57:10 PDT 2014
Frederic Riss <friss at apple.com> writes:
> Author: friss
> Date: Thu Sep 4 01:14:28 2014
> New Revision: 217128
>
> URL: http://llvm.org/viewvc/llvm-project?rev=217128&view=revLog:
> Add a DWARFContext& member in DWARFUnit.
>
> The DWARFContext will be used to pass global 'context' down, like
> pointers to related debug info sections or command line options.
> The first use will be for the debug_info dumper to be able to access
> other debug info section to dump eg. Location Expression inline
> in the debug_info dump.
>
> Modified:
> llvm/trunk/lib/DebugInfo/DWARFCompileUnit.h
> llvm/trunk/lib/DebugInfo/DWARFContext.cpp
> llvm/trunk/lib/DebugInfo/DWARFTypeUnit.h
> llvm/trunk/lib/DebugInfo/DWARFUnit.cpp
> llvm/trunk/lib/DebugInfo/DWARFUnit.h
>
> Modified: llvm/trunk/lib/DebugInfo/DWARFCompileUnit.h
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/DWARFCompileUnit.h?rev=217128&r1=217127&r2=217128&view=diff==============================================================================
> --- llvm/trunk/lib/DebugInfo/DWARFCompileUnit.h (original)
> +++ llvm/trunk/lib/DebugInfo/DWARFCompileUnit.h Thu Sep 4 01:14:28 2014
> @@ -16,10 +16,10 @@ namespace llvm {
>
> class DWARFCompileUnit : public DWARFUnit {
> public:
> - DWARFCompileUnit(const DWARFDebugAbbrev *DA, StringRef IS, StringRef RS,
> - StringRef SS, StringRef SOS, StringRef AOS,
> - const RelocAddrMap *M, bool LE)
> - : DWARFUnit(DA, IS, RS, SS, SOS, AOS, M, LE) {}
> + DWARFCompileUnit(DWARFContext& Context, const DWARFDebugAbbrev *DA,
> + StringRef IS, StringRef RS, StringRef SS, StringRef SOS,
> + StringRef AOS, const RelocAddrMap *M, bool LE)
> + : DWARFUnit(Context, DA, IS, RS, SS, SOS, AOS, M, LE) {}
> void dump(raw_ostream &OS);
> // VTable anchor.
> ~DWARFCompileUnit() override;
>
> Modified: llvm/trunk/lib/DebugInfo/DWARFContext.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/DWARFContext.cpp?rev=217128&r1=217127&r2=217128&view=diff==============================================================================
> --- llvm/trunk/lib/DebugInfo/DWARFContext.cpp (original)
> +++ llvm/trunk/lib/DebugInfo/DWARFContext.cpp Thu Sep 4 01:14:28 2014
> @@ -318,7 +318,7 @@ void DWARFContext::parseCompileUnits() {
> const DataExtractor &DIData = DataExtractor(getInfoSection().Data,
> isLittleEndian(), 0);
> while (DIData.isValidOffset(offset)) {
> - std::unique_ptr<DWARFCompileUnit> CU(new DWARFCompileUnit(
> + std::unique_ptr<DWARFCompileUnit> CU(new DWARFCompileUnit(*this,
While you're in here, it might be worthwhile to clean these up to use
auto and llvm::make_unique.
> getDebugAbbrev(), getInfoSection().Data, getRangeSection(),
> getStringSection(), StringRef(), getAddrSection(),
> &getInfoSection().Relocs, isLittleEndian()));
> @@ -338,10 +338,10 @@ void DWARFContext::parseTypeUnits() {
> const DataExtractor &DIData =
> DataExtractor(I.second.Data, isLittleEndian(), 0);
> while (DIData.isValidOffset(offset)) {
> - std::unique_ptr<DWARFTypeUnit> TU(
> - new DWARFTypeUnit(getDebugAbbrev(), I.second.Data, getRangeSection(),
> - getStringSection(), StringRef(), getAddrSection(),
> - &I.second.Relocs, isLittleEndian()));
> + std::unique_ptr<DWARFTypeUnit> TU(new DWARFTypeUnit(*this,
> + getDebugAbbrev(), I.second.Data, getRangeSection(),
> + getStringSection(), StringRef(), getAddrSection(),
> + &I.second.Relocs, isLittleEndian()));
> if (!TU->extract(DIData, &offset))
> break;
> TUs.push_back(std::move(TU));
> @@ -357,7 +357,7 @@ void DWARFContext::parseDWOCompileUnits(
> const DataExtractor &DIData =
> DataExtractor(getInfoDWOSection().Data, isLittleEndian(), 0);
> while (DIData.isValidOffset(offset)) {
> - std::unique_ptr<DWARFCompileUnit> DWOCU(new DWARFCompileUnit(
> + std::unique_ptr<DWARFCompileUnit> DWOCU(new DWARFCompileUnit(*this,
> getDebugAbbrevDWO(), getInfoDWOSection().Data, getRangeDWOSection(),
> getStringDWOSection(), getStringOffsetDWOSection(), getAddrSection(),
> &getInfoDWOSection().Relocs, isLittleEndian()));
> @@ -377,7 +377,7 @@ void DWARFContext::parseDWOTypeUnits() {
> const DataExtractor &DIData =
> DataExtractor(I.second.Data, isLittleEndian(), 0);
> while (DIData.isValidOffset(offset)) {
> - std::unique_ptr<DWARFTypeUnit> TU(new DWARFTypeUnit(
> + std::unique_ptr<DWARFTypeUnit> TU(new DWARFTypeUnit(*this,
> getDebugAbbrevDWO(), I.second.Data, getRangeDWOSection(),
> getStringDWOSection(), getStringOffsetDWOSection(), getAddrSection(),
> &I.second.Relocs, isLittleEndian()));
>
> Modified: llvm/trunk/lib/DebugInfo/DWARFTypeUnit.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/DWARFTypeUnit.h?rev=217128&r1=217127&r2=217128&view=diff==============================================================================
> --- llvm/trunk/lib/DebugInfo/DWARFTypeUnit.h (original)
> +++ llvm/trunk/lib/DebugInfo/DWARFTypeUnit.h Thu Sep 4 01:14:28 2014
> @@ -19,10 +19,10 @@ private:
> uint64_t TypeHash;
> uint32_t TypeOffset;
> public:
> - DWARFTypeUnit(const DWARFDebugAbbrev *DA, StringRef IS, StringRef RS,
> - StringRef SS, StringRef SOS, StringRef AOS,
> - const RelocAddrMap *M, bool LE)
> - : DWARFUnit(DA, IS, RS, SS, SOS, AOS, M, LE) {}
> + DWARFTypeUnit(DWARFContext &Context, const DWARFDebugAbbrev *DA,
> + StringRef IS, StringRef RS, StringRef SS, StringRef SOS,
> + StringRef AOS, const RelocAddrMap *M, bool LE)
> + : DWARFUnit(Context, DA, IS, RS, SS, SOS, AOS, M, LE) {}
> uint32_t getHeaderSize() const override {
> return DWARFUnit::getHeaderSize() + 12;
> }
>
> Modified: llvm/trunk/lib/DebugInfo/DWARFUnit.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/DWARFUnit.cpp?rev=217128&r1=217127&r2=217128&view=diff==============================================================================
> --- llvm/trunk/lib/DebugInfo/DWARFUnit.cpp (original)
> +++ llvm/trunk/lib/DebugInfo/DWARFUnit.cpp Thu Sep 4 01:14:28 2014
> @@ -17,12 +17,12 @@
> using namespace llvm;
> using namespace dwarf;
>
> -DWARFUnit::DWARFUnit(const DWARFDebugAbbrev *DA, StringRef IS, StringRef RS,
> - StringRef SS, StringRef SOS, StringRef AOS,
> - const RelocAddrMap *M, bool LE)
> - : Abbrev(DA), InfoSection(IS), RangeSection(RS), StringSection(SS),
> - StringOffsetSection(SOS), AddrOffsetSection(AOS), RelocMap(M),
> - isLittleEndian(LE) {
> +DWARFUnit::DWARFUnit(DWARFContext &DC, const DWARFDebugAbbrev *DA,
> + StringRef IS, StringRef RS, StringRef SS, StringRef SOS,
> + StringRef AOS, const RelocAddrMap *M, bool LE)
> + : Context(DC), Abbrev(DA), InfoSection(IS), RangeSection(RS),
> + StringSection(SS), StringOffsetSection(SOS), AddrOffsetSection(AOS),
> + RelocMap(M), isLittleEndian(LE) {
> clear();
> }
>
>
> Modified: llvm/trunk/lib/DebugInfo/DWARFUnit.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/DebugInfo/DWARFUnit.h?rev=217128&r1=217127&r2=217128&view=diff==============================================================================
> --- llvm/trunk/lib/DebugInfo/DWARFUnit.h (original)
> +++ llvm/trunk/lib/DebugInfo/DWARFUnit.h Thu Sep 4 01:14:28 2014
> @@ -22,11 +22,14 @@ namespace object {
> class ObjectFile;
> }
>
> +class DWARFContext;
> class DWARFDebugAbbrev;
> class StringRef;
> class raw_ostream;
>
> class DWARFUnit {
> + DWARFContext &Context;
> +
> const DWARFDebugAbbrev *Abbrev;
> StringRef InfoSection;
> StringRef RangeSection;
> @@ -63,12 +66,14 @@ protected:
> virtual uint32_t getHeaderSize() const { return 11; }
>
> public:
> - DWARFUnit(const DWARFDebugAbbrev *DA, StringRef IS, StringRef RS,
> - StringRef SS, StringRef SOS, StringRef AOS, const RelocAddrMap *M,
> - bool LE);
> + DWARFUnit(DWARFContext& Context, const DWARFDebugAbbrev *DA, StringRef IS,
> + StringRef RS, StringRef SS, StringRef SOS, StringRef AOS,
> + const RelocAddrMap *M, bool LE);
>
> virtual ~DWARFUnit();
>
> + DWARFContext& getContext() const { return Context; }
> +
> StringRef getStringSection() const { return StringSection; }
> StringRef getStringOffsetSection() const { return StringOffsetSection; }
> void setAddrOffsetSection(StringRef AOS, uint32_t Base) {
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list