Sink DwarfDebug::attachLowHighPC into DwarfCompileUnit

One of many things to sink down into DwarfCompileUnit to allow handling
of subprograms in both the skeleton and dwo CU under Fission.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@219058 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
David Blaikie 2014-10-04 15:58:47 +00:00
parent a2ec9db66b
commit 2c9ba7b7b1
4 changed files with 20 additions and 20 deletions

View File

@ -274,4 +274,18 @@ void DwarfCompileUnit::applyStmtList(DIE &D) {
UnitDie.getValues()[stmtListIndex]);
}
void DwarfCompileUnit::attachLowHighPC(DIE &D, const MCSymbol *Begin,
const MCSymbol *End) {
assert(Begin && "Begin label should not be null!");
assert(End && "End label should not be null!");
assert(Begin->isDefined() && "Invalid starting label");
assert(End->isDefined() && "Invalid end label");
addLabelAddress(D, dwarf::DW_AT_low_pc, Begin);
if (DD->getDwarfVersion() < 4)
addLabelAddress(D, dwarf::DW_AT_high_pc, End);
else
addLabelDelta(D, dwarf::DW_AT_high_pc, End, Begin);
}
} // end llvm namespace

View File

@ -60,6 +60,8 @@ public:
/// addRange - Add an address range to the list of ranges for this unit.
void addRange(RangeSpan Range);
void attachLowHighPC(DIE &D, const MCSymbol *Begin, const MCSymbol *End);
};
} // end llvm namespace

View File

@ -318,7 +318,7 @@ DIE &DwarfDebug::updateSubprogramScopeDIE(DwarfCompileUnit &SPCU,
DISubprogram SP) {
DIE *SPDie = SPCU.getOrCreateSubprogramDIE(SP);
attachLowHighPC(SPCU, *SPDie, FunctionBeginSym, FunctionEndSym);
SPCU.attachLowHighPC(*SPDie, FunctionBeginSym, FunctionEndSym);
if (!CurFn->getTarget().Options.DisableFramePointerElim(*CurFn))
SPCU.addFlag(*SPDie, dwarf::DW_AT_APPLE_omit_frame_ptr);
@ -394,8 +394,8 @@ void DwarfDebug::attachRangesOrLowHighPC(DwarfCompileUnit &TheCU, DIE &Die,
const SmallVectorImpl<InsnRange> &Ranges) {
assert(!Ranges.empty());
if (Ranges.size() == 1)
attachLowHighPC(TheCU, Die, getLabelBeforeInsn(Ranges.front().first),
getLabelAfterInsn(Ranges.front().second));
TheCU.attachLowHighPC(Die, getLabelBeforeInsn(Ranges.front().first),
getLabelAfterInsn(Ranges.front().second));
else
addScopeRangeList(TheCU, Die, Ranges);
}
@ -977,7 +977,7 @@ void DwarfDebug::finalizeModuleInfo() {
0);
} else {
RangeSpan &Range = TheU->getRanges().back();
attachLowHighPC(U, U.getUnitDie(), Range.getStart(), Range.getEnd());
U.attachLowHighPC(U.getUnitDie(), Range.getStart(), Range.getEnd());
}
}
}
@ -2636,20 +2636,6 @@ void DwarfDebug::addDwarfTypeUnitType(DwarfCompileUnit &CU,
CU.addDIETypeSignature(RefDie, NewTU);
}
void DwarfDebug::attachLowHighPC(DwarfCompileUnit &Unit, DIE &D,
const MCSymbol *Begin, const MCSymbol *End) {
assert(Begin && "Begin label should not be null!");
assert(End && "End label should not be null!");
assert(Begin->isDefined() && "Invalid starting label");
assert(End->isDefined() && "Invalid end label");
Unit.addLabelAddress(D, dwarf::DW_AT_low_pc, Begin);
if (DwarfVersion < 4)
Unit.addLabelAddress(D, dwarf::DW_AT_high_pc, End);
else
Unit.addLabelDelta(D, dwarf::DW_AT_high_pc, End, Begin);
}
// Accelerator table mutators - add each name along with its companion
// DIE to the proper table while ensuring that the name that we're going
// to reference is in the string table. We do this since the names we

View File

@ -567,8 +567,6 @@ class DwarfDebug : public AsmPrinterHandler {
void attachRangesOrLowHighPC(DwarfCompileUnit &Unit, DIE &D,
const SmallVectorImpl<InsnRange> &Ranges);
void attachLowHighPC(DwarfCompileUnit &Unit, DIE &D, const MCSymbol *Begin,
const MCSymbol *End);
public:
//===--------------------------------------------------------------------===//