diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfFile.h b/llvm/lib/CodeGen/AsmPrinter/DwarfFile.h
index c315f44..8dfbc4e 100644
--- a/llvm/lib/CodeGen/AsmPrinter/DwarfFile.h
+++ b/llvm/lib/CodeGen/AsmPrinter/DwarfFile.h
@@ -24,9 +24,7 @@
 namespace llvm {
 
 class AsmPrinter;
-class DbgEntity;
 class DbgVariable;
-class DbgLabel;
 class DwarfCompileUnit;
 class DwarfUnit;
 class LexicalScope;
@@ -64,13 +62,9 @@
   /// Collection of DbgVariables of each lexical scope.
   DenseMap<LexicalScope *, ScopeVars> ScopeVariables;
 
-  /// Collection of DbgLabels of each lexical scope.
-  using LabelList = SmallVector<DbgLabel *, 4>;
-  DenseMap<LexicalScope *, LabelList> ScopeLabels;
-
   // Collection of abstract subprogram DIEs.
   DenseMap<const MDNode *, DIE *> AbstractSPDies;
-  DenseMap<const DINode *, std::unique_ptr<DbgEntity>> AbstractEntities;
+  DenseMap<const MDNode *, std::unique_ptr<DbgVariable>> AbstractVariables;
 
   /// Maps MDNodes for type system with the corresponding DIEs. These DIEs can
   /// be shared across CUs, that is why we keep the map here instead
@@ -128,22 +122,16 @@
   /// \returns false if the variable was merged with a previous one.
   bool addScopeVariable(LexicalScope *LS, DbgVariable *Var);
 
-  void addScopeLabel(LexicalScope *LS, DbgLabel *Label);
-
   DenseMap<LexicalScope *, ScopeVars> &getScopeVariables() {
     return ScopeVariables;
   }
 
-  DenseMap<LexicalScope *, LabelList> &getScopeLabels() {
-    return ScopeLabels;
-  }
-
   DenseMap<const MDNode *, DIE *> &getAbstractSPDies() {
     return AbstractSPDies;
   }
 
-  DenseMap<const DINode *, std::unique_ptr<DbgEntity>> &getAbstractEntities() {
-    return AbstractEntities;
+  DenseMap<const MDNode *, std::unique_ptr<DbgVariable>> &getAbstractVariables() {
+    return AbstractVariables;
   }
 
   void insertDIE(const MDNode *TypeMD, DIE *Die) {
