use Label->isDefined() instead of isLabelDeleted() now that we
authorChris Lattner <sabre@nondot.org>
Sun, 14 Mar 2010 02:20:58 +0000 (02:20 +0000)
committerChris Lattner <sabre@nondot.org>
Sun, 14 Mar 2010 02:20:58 +0000 (02:20 +0000)
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

include/llvm/CodeGen/MachineModuleInfo.h
lib/CodeGen/AsmPrinter/DwarfDebug.cpp
lib/CodeGen/AsmPrinter/DwarfPrinter.cpp

index b4b641858e3928d7a0e1f9cf4d04c489f806bae2..eba49bd7963f79147a39c51074ed5feeb6d6ebfc 100644 (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.
index 98e60a7616cd2677b651b3cc388a08ef5a2aae49..4b71cfe00367d75fb886f05da6f353f00bc35a4f 100644 (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()) {
index 8d633f3dd6af94f68a8c14ebf0157b5c1fdb4385..000d93ff1b096c40c5d09efa288bac1b69ea62b9 100644 (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);