mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-15 04:30:12 +00:00
reapply r98035:
Now that setStartLabel takes an MCSymbol, we can de-ID'ize beginScope and RecordSourceLine. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98047 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
6c7dfc0463
commit
c608784dc8
@ -35,6 +35,7 @@ class Value;
|
|||||||
class Module;
|
class Module;
|
||||||
class MDNode;
|
class MDNode;
|
||||||
class MCAsmInfo;
|
class MCAsmInfo;
|
||||||
|
class MCSymbol;
|
||||||
class raw_ostream;
|
class raw_ostream;
|
||||||
class Instruction;
|
class Instruction;
|
||||||
class DICompileUnit;
|
class DICompileUnit;
|
||||||
@ -82,10 +83,10 @@ public:
|
|||||||
///
|
///
|
||||||
void EndFunction(const MachineFunction *MF);
|
void EndFunction(const MachineFunction *MF);
|
||||||
|
|
||||||
/// RecordSourceLine - Register a source line with debug info. Returns a
|
/// RecordSourceLine - Register a source line with debug info. Returns the
|
||||||
/// unique label ID used to generate a label and provide correspondence to
|
/// unique label that was emitted and which provides correspondence to
|
||||||
/// the source line list.
|
/// the source line list.
|
||||||
unsigned RecordSourceLine(unsigned Line, unsigned Col, MDNode *Scope);
|
MCSymbol *RecordSourceLine(unsigned Line, unsigned Col, MDNode *Scope);
|
||||||
|
|
||||||
/// getRecordSourceLineCount - Count source lines.
|
/// getRecordSourceLineCount - Count source lines.
|
||||||
unsigned getRecordSourceLineCount();
|
unsigned getRecordSourceLineCount();
|
||||||
@ -94,7 +95,7 @@ public:
|
|||||||
/// be emitted.
|
/// be emitted.
|
||||||
bool ShouldEmitDwarfDebug() const;
|
bool ShouldEmitDwarfDebug() const;
|
||||||
|
|
||||||
void BeginScope(const MachineInstr *MI, unsigned Label);
|
void BeginScope(const MachineInstr *MI, MCSymbol *Label);
|
||||||
void EndScope(const MachineInstr *MI);
|
void EndScope(const MachineInstr *MI);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1319,10 +1319,9 @@ void AsmPrinter::processDebugLoc(const MachineInstr *MI,
|
|||||||
// After printing instruction
|
// After printing instruction
|
||||||
DW->EndScope(MI);
|
DW->EndScope(MI);
|
||||||
} else if (CurDLT.getNode() != PrevDLT) {
|
} else if (CurDLT.getNode() != PrevDLT) {
|
||||||
unsigned L = DW->RecordSourceLine(CurDLT.getLineNumber(),
|
MCSymbol *L = DW->RecordSourceLine(CurDLT.getLineNumber(),
|
||||||
CurDLT.getColumnNumber(),
|
CurDLT.getColumnNumber(),
|
||||||
CurDLT.getScope().getNode());
|
CurDLT.getScope().getNode());
|
||||||
printLabel(L);
|
|
||||||
DW->BeginScope(MI, L);
|
DW->BeginScope(MI, L);
|
||||||
PrevDLT = CurDLT.getNode();
|
PrevDLT = CurDLT.getNode();
|
||||||
}
|
}
|
||||||
|
@ -1951,14 +1951,14 @@ void DwarfDebug::collectVariableInfo() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// beginScope - Process beginning of a scope starting at Label.
|
/// beginScope - Process beginning of a scope starting at Label.
|
||||||
void DwarfDebug::beginScope(const MachineInstr *MI, unsigned Label) {
|
void DwarfDebug::beginScope(const MachineInstr *MI, MCSymbol *Label) {
|
||||||
InsnToDbgScopeMapTy::iterator I = DbgScopeBeginMap.find(MI);
|
InsnToDbgScopeMapTy::iterator I = DbgScopeBeginMap.find(MI);
|
||||||
if (I == DbgScopeBeginMap.end())
|
if (I == DbgScopeBeginMap.end())
|
||||||
return;
|
return;
|
||||||
ScopeVector &SD = I->second;
|
ScopeVector &SD = I->second;
|
||||||
for (ScopeVector::iterator SDI = SD.begin(), SDE = SD.end();
|
for (ScopeVector::iterator SDI = SD.begin(), SDE = SD.end();
|
||||||
SDI != SDE; ++SDI)
|
SDI != SDE; ++SDI)
|
||||||
(*SDI)->setStartLabel(getDWLabel("label", Label));
|
(*SDI)->setStartLabel(Label);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// endScope - Process end of a scope.
|
/// endScope - Process end of a scope.
|
||||||
@ -2127,7 +2127,7 @@ void DwarfDebug::beginFunction(const MachineFunction *MF) {
|
|||||||
Col = DLT.getColumnNumber();
|
Col = DLT.getColumnNumber();
|
||||||
}
|
}
|
||||||
|
|
||||||
Asm->printLabel(recordSourceLine(Line, Col, DLT.getScope().getNode()));
|
recordSourceLine(Line, Col, DLT.getScope().getNode());
|
||||||
}
|
}
|
||||||
if (TimePassesIsEnabled)
|
if (TimePassesIsEnabled)
|
||||||
DebugTimer->stopTimer();
|
DebugTimer->stopTimer();
|
||||||
@ -2183,11 +2183,10 @@ void DwarfDebug::endFunction(const MachineFunction *MF) {
|
|||||||
DebugTimer->stopTimer();
|
DebugTimer->stopTimer();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// recordSourceLine - Records location information and associates it with a
|
/// recordSourceLine - Register a source line with debug info. Returns the
|
||||||
/// label. Returns a unique label ID used to generate a label and provide
|
/// unique label that was emitted and which provides correspondence to
|
||||||
/// correspondence to the source line list.
|
/// the source line list.
|
||||||
unsigned DwarfDebug::recordSourceLine(unsigned Line, unsigned Col,
|
MCSymbol *DwarfDebug::recordSourceLine(unsigned Line, unsigned Col, MDNode *S) {
|
||||||
MDNode *S) {
|
|
||||||
if (!MMI)
|
if (!MMI)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
@ -2220,7 +2219,9 @@ unsigned DwarfDebug::recordSourceLine(unsigned Line, unsigned Col,
|
|||||||
if (TimePassesIsEnabled)
|
if (TimePassesIsEnabled)
|
||||||
DebugTimer->stopTimer();
|
DebugTimer->stopTimer();
|
||||||
|
|
||||||
return ID;
|
MCSymbol *Label = getDWLabel("label", ID);
|
||||||
|
Asm->OutStreamer.EmitLabel(Label);
|
||||||
|
return Label;
|
||||||
}
|
}
|
||||||
|
|
||||||
/// getOrCreateSourceID - Public version of GetOrCreateSourceID. This can be
|
/// getOrCreateSourceID - Public version of GetOrCreateSourceID. This can be
|
||||||
|
@ -512,10 +512,10 @@ public:
|
|||||||
///
|
///
|
||||||
void endFunction(const MachineFunction *MF);
|
void endFunction(const MachineFunction *MF);
|
||||||
|
|
||||||
/// recordSourceLine - Records location information and associates it with a
|
/// recordSourceLine - Register a source line with debug info. Returns the
|
||||||
/// label. Returns a unique label ID used to generate a label and provide
|
/// unique label that was emitted and which provides correspondence to
|
||||||
/// correspondence to the source line list.
|
/// the source line list.
|
||||||
unsigned recordSourceLine(unsigned Line, unsigned Col, MDNode *Scope);
|
MCSymbol *recordSourceLine(unsigned Line, unsigned Col, MDNode *Scope);
|
||||||
|
|
||||||
/// getSourceLineCount - Return the number of source lines in the debug
|
/// getSourceLineCount - Return the number of source lines in the debug
|
||||||
/// info.
|
/// info.
|
||||||
@ -539,7 +539,7 @@ public:
|
|||||||
void collectVariableInfo();
|
void collectVariableInfo();
|
||||||
|
|
||||||
/// beginScope - Process beginning of a scope starting at Label.
|
/// beginScope - Process beginning of a scope starting at Label.
|
||||||
void beginScope(const MachineInstr *MI, unsigned Label);
|
void beginScope(const MachineInstr *MI, MCSymbol *Label);
|
||||||
|
|
||||||
/// endScope - Prcess end of a scope.
|
/// endScope - Prcess end of a scope.
|
||||||
void endScope(const MachineInstr *MI);
|
void endScope(const MachineInstr *MI);
|
||||||
|
@ -73,10 +73,10 @@ void DwarfWriter::EndFunction(const MachineFunction *MF) {
|
|||||||
MMI->EndFunction();
|
MMI->EndFunction();
|
||||||
}
|
}
|
||||||
|
|
||||||
/// RecordSourceLine - Records location information and associates it with a
|
/// RecordSourceLine - Register a source line with debug info. Returns the
|
||||||
/// label. Returns a unique label ID used to generate a label and provide
|
/// unique label that was emitted and which provides correspondence to
|
||||||
/// correspondence to the source line list.
|
/// the source line list.
|
||||||
unsigned DwarfWriter::RecordSourceLine(unsigned Line, unsigned Col,
|
MCSymbol *DwarfWriter::RecordSourceLine(unsigned Line, unsigned Col,
|
||||||
MDNode *Scope) {
|
MDNode *Scope) {
|
||||||
return DD->recordSourceLine(Line, Col, Scope);
|
return DD->recordSourceLine(Line, Col, Scope);
|
||||||
}
|
}
|
||||||
@ -92,7 +92,7 @@ bool DwarfWriter::ShouldEmitDwarfDebug() const {
|
|||||||
return DD && DD->ShouldEmitDwarfDebug();
|
return DD && DD->ShouldEmitDwarfDebug();
|
||||||
}
|
}
|
||||||
|
|
||||||
void DwarfWriter::BeginScope(const MachineInstr *MI, unsigned L) {
|
void DwarfWriter::BeginScope(const MachineInstr *MI, MCSymbol *L) {
|
||||||
DD->beginScope(MI, L);
|
DD->beginScope(MI, L);
|
||||||
}
|
}
|
||||||
void DwarfWriter::EndScope(const MachineInstr *MI) {
|
void DwarfWriter::EndScope(const MachineInstr *MI) {
|
||||||
|
Loading…
Reference in New Issue
Block a user