mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 04:30:12 +00:00
Sink PrevCU updating into DwarfUnit::addRange to ensure consistency
So that the two operations in DwarfDebug couldn't get separated (because I accidentally separated them in some work in progress), put them together. While we're here, move DwarfUnit::addRange to DwarfCompileUnit, since it's not relevant to type units. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@217468 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
9e0dae166f
commit
01c14f6de0
@ -1709,7 +1709,6 @@ void DwarfDebug::endFunction(const MachineFunction *MF) {
|
||||
// Add the range of this function to the list of ranges for the CU.
|
||||
RangeSpan Span(FunctionBeginSym, FunctionEndSym);
|
||||
TheCU.addRange(std::move(Span));
|
||||
PrevCU = &TheCU;
|
||||
|
||||
// Clear debug info
|
||||
// Ownership of DbgVariables is a bit subtle - ScopeVariables owns all the
|
||||
|
@ -629,6 +629,7 @@ public:
|
||||
|
||||
/// Returns the previous CU that was being updated
|
||||
const DwarfCompileUnit *getPrevCU() const { return PrevCU; }
|
||||
void setPrevCU(const DwarfCompileUnit *PrevCU) { this->PrevCU = PrevCU; }
|
||||
|
||||
/// Returns the entries for the .debug_loc section.
|
||||
const SmallVectorImpl<DebugLocList> &
|
||||
|
@ -2037,14 +2037,16 @@ void DwarfUnit::emitHeader(const MCSymbol *ASectionSym) const {
|
||||
Asm->EmitInt8(Asm->getDataLayout().getPointerSize());
|
||||
}
|
||||
|
||||
void DwarfUnit::addRange(RangeSpan Range) {
|
||||
void DwarfCompileUnit::addRange(RangeSpan Range) {
|
||||
// Only add a range for this unit if we're emitting full debug.
|
||||
if (getCUNode().getEmissionKind() == DIBuilder::FullDebug) {
|
||||
bool SameAsPrevCU = this == DD->getPrevCU();
|
||||
DD->setPrevCU(this);
|
||||
// If we have no current ranges just add the range and return, otherwise,
|
||||
// check the current section and CU against the previous section and CU we
|
||||
// emitted into and the subprogram was contained within. If these are the
|
||||
// same then extend our current range, otherwise add this as a new range.
|
||||
if (CURanges.empty() || this != DD->getPrevCU() ||
|
||||
if (CURanges.empty() || !SameAsPrevCU ||
|
||||
(&CURanges.back().getEnd()->getSection() !=
|
||||
&Range.getEnd()->getSection())) {
|
||||
CURanges.push_back(Range);
|
||||
|
@ -216,9 +216,6 @@ public:
|
||||
/// hasContent - Return true if this compile unit has something to write out.
|
||||
bool hasContent() const { return !UnitDie.getChildren().empty(); }
|
||||
|
||||
/// addRange - Add an address range to the list of ranges for this unit.
|
||||
void addRange(RangeSpan Range);
|
||||
|
||||
/// getRanges - Get the list of ranges for this unit.
|
||||
const SmallVectorImpl<RangeSpan> &getRanges() const { return CURanges; }
|
||||
SmallVectorImpl<RangeSpan> &getRanges() { return CURanges; }
|
||||
@ -555,6 +552,9 @@ public:
|
||||
DwarfCompileUnit &getCU() override { return *this; }
|
||||
|
||||
unsigned getOrCreateSourceID(StringRef FileName, StringRef DirName) override;
|
||||
|
||||
/// addRange - Add an address range to the list of ranges for this unit.
|
||||
void addRange(RangeSpan Range);
|
||||
};
|
||||
|
||||
class DwarfTypeUnit : public DwarfUnit {
|
||||
|
Loading…
Reference in New Issue
Block a user