diff options
author | David Blaikie <dblaikie@gmail.com> | 2014-04-28 21:14:27 +0000 |
---|---|---|
committer | David Blaikie <dblaikie@gmail.com> | 2014-04-28 21:14:27 +0000 |
commit | bd57905321aca590803e30bae763e738df3f4cb5 (patch) | |
tree | f180eaff74626e06164ce40bbf945c01f249a698 /llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp | |
parent | 92a2f8a836dfbcdcf885da9fa76c5434ccf4d643 (diff) | |
download | bcm5719-llvm-bd57905321aca590803e30bae763e738df3f4cb5.tar.gz bcm5719-llvm-bd57905321aca590803e30bae763e738df3f4cb5.zip |
DebugInfo: Just store the DIE by value in the DwarfUnit
Since all 4 ctor calls in DwarfDebug just pass in a trivially
constructed DIE with the right tag type, sink the tag selection down
into the Dwarf*Unit ctors (removing the argument entirely from callers
in DwarfDebug) and initialize the DIE member in DwarfUnit.
llvm-svn: 207448
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp')
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp index 473b141614f..c2ecc8a37e4 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp @@ -653,9 +653,7 @@ DwarfCompileUnit &DwarfDebug::constructDwarfCompileUnit(DICompileUnit DIUnit) { CompilationDir = DIUnit.getDirectory(); auto OwnedUnit = make_unique<DwarfCompileUnit>( - InfoHolder.getUnits().size(), - make_unique<DIE>(dwarf::DW_TAG_compile_unit), DIUnit, Asm, this, - &InfoHolder); + InfoHolder.getUnits().size(), DIUnit, Asm, this, &InfoHolder); DwarfCompileUnit &NewCU = *OwnedUnit; DIE &Die = NewCU.getUnitDie(); InfoHolder.addUnit(std::move(OwnedUnit)); @@ -2426,8 +2424,7 @@ void DwarfDebug::initSkeletonUnit(const DwarfUnit &U, DIE &Die, DwarfCompileUnit &DwarfDebug::constructSkeletonCU(const DwarfCompileUnit &CU) { auto OwnedUnit = make_unique<DwarfCompileUnit>( - CU.getUniqueID(), make_unique<DIE>(dwarf::DW_TAG_compile_unit), - CU.getCUNode(), Asm, this, &SkeletonHolder); + CU.getUniqueID(), CU.getCUNode(), Asm, this, &SkeletonHolder); DwarfCompileUnit &NewCU = *OwnedUnit; NewCU.initSection(Asm->getObjFileLowering().getDwarfInfoSection(), DwarfInfoSectionSym); @@ -2445,9 +2442,8 @@ DwarfTypeUnit &DwarfDebug::constructSkeletonTU(DwarfTypeUnit &TU) { DwarfCompileUnit &CU = static_cast<DwarfCompileUnit &>( *SkeletonHolder.getUnits()[TU.getCU().getUniqueID()]); - auto OwnedUnit = make_unique<DwarfTypeUnit>( - TU.getUniqueID(), make_unique<DIE>(dwarf::DW_TAG_type_unit), CU, Asm, - this, &SkeletonHolder); + auto OwnedUnit = make_unique<DwarfTypeUnit>(TU.getUniqueID(), CU, Asm, this, + &SkeletonHolder); DwarfTypeUnit &NewTU = *OwnedUnit; NewTU.setTypeSignature(TU.getTypeSignature()); NewTU.setType(nullptr); @@ -2530,9 +2526,9 @@ void DwarfDebug::addDwarfTypeUnitType(DwarfCompileUnit &CU, bool TopLevelType = TypeUnitsUnderConstruction.empty(); AddrPool.resetUsedFlag(); - auto OwnedUnit = make_unique<DwarfTypeUnit>( - InfoHolder.getUnits().size(), make_unique<DIE>(dwarf::DW_TAG_type_unit), - CU, Asm, this, &InfoHolder, getDwoLineTable(CU)); + auto OwnedUnit = + make_unique<DwarfTypeUnit>(InfoHolder.getUnits().size(), CU, Asm, this, + &InfoHolder, getDwoLineTable(CU)); DwarfTypeUnit &NewTU = *OwnedUnit; DIE &UnitDie = NewTU.getUnitDie(); TU = &NewTU; |