use Label->isDefined() instead of isLabelDeleted() now that we

consistently use MCSymbol and only call this predicate after
they should have been emitted.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98461 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2010-03-14 02:20:58 +00:00
parent 53d00241fb
commit b91306053d
3 changed files with 9 additions and 16 deletions

View File

@ -224,14 +224,6 @@ public:
LabelIDList[LabelID - 1] = 0;
}
/// isLabelDeleted - Return true if the label was deleted.
/// FIXME: This should eventually be eliminated and use the 'is emitted' bit
/// on MCSymbol.
bool isLabelDeleted(unsigned LabelID) const {
assert(LabelID <= LabelIDList.size() && "Debug label ID out of range.");
return LabelID == 0 || LabelIDList[LabelID - 1] == 0;
}
/// getFrameMoves - Returns a reference to a list of moves done in the current
/// function's prologue. Used to construct frame maps for debug and exception
/// handling comsumers.

View File

@ -2615,7 +2615,8 @@ void DwarfDebug::emitDebugLines() {
for (unsigned i = 0, N = LineInfos.size(); i < N; ++i) {
const SrcLineInfo &LineInfo = LineInfos[i];
unsigned LabelID = LineInfo.getLabelID();
if (MMI->isLabelDeleted(LabelID)) continue;
MCSymbol *Label = getDWLabel("label", LabelID);
if (!Label->isDefined()) continue; // Not emitted, in dead code.
if (LineInfo.getLine() == 0) continue;
@ -2638,8 +2639,8 @@ void DwarfDebug::emitDebugLines() {
Asm->EmitInt8(dwarf::DW_LNE_set_address);
Asm->OutStreamer.AddComment("Location label");
Asm->OutStreamer.EmitSymbolValue(getDWLabel("label", LabelID),
TD->getPointerSize(), 0/*AddrSpace*/);
Asm->OutStreamer.EmitSymbolValue(Label, TD->getPointerSize(),
0/*AddrSpace*/);
// If change of source, then switch to the new source.
if (Source != LineInfo.getSourceID()) {

View File

@ -248,17 +248,17 @@ void DwarfPrinter::EmitFrameMoves(MCSymbol *BaseLabel,
for (unsigned i = 0, N = Moves.size(); i < N; ++i) {
const MachineMove &Move = Moves[i];
unsigned LabelID = Move.getLabelID();
// Throw out move if the label is invalid.
if (LabelID && MMI->isLabelDeleted(LabelID))
continue;
if (LabelID == 0) continue;
MCSymbol *Label = getDWLabel("label", LabelID);
if (!Label->isDefined()) continue; // Not emitted, in dead code.
const MachineLocation &Dst = Move.getDestination();
const MachineLocation &Src = Move.getSource();
// Advance row if new location.
if (BaseLabel && LabelID) {
MCSymbol *ThisSym = getDWLabel("label", LabelID);
if (BaseLabel) {
MCSymbol *ThisSym = Label;
if (ThisSym != BaseLabel) {
EmitCFAByte(dwarf::DW_CFA_advance_loc4);
EmitDifference(ThisSym, BaseLabel, true);