[llvm] r228652 - IR: Remove unnecessary fields from MDTemplateParameter

Duncan P. N. Exon Smith dexonsmith at apple.com
Mon Feb 9 17:59:57 PST 2015


Author: dexonsmith
Date: Mon Feb  9 19:59:57 2015
New Revision: 228652

URL: http://llvm.org/viewvc/llvm-project?rev=228652&view=rev
Log:
IR: Remove unnecessary fields from MDTemplateParameter

I noticed this fields were never used in r228607, but I neglected to
propagate that into `MDTemplateParameter` until now.  This really should
have been done before commit in r228640; sorry for the churn.

Modified:
    llvm/trunk/include/llvm/IR/DebugInfoMetadata.h
    llvm/trunk/lib/IR/DebugInfoMetadata.cpp
    llvm/trunk/lib/IR/LLVMContextImpl.h
    llvm/trunk/unittests/IR/MetadataTest.cpp

Modified: llvm/trunk/include/llvm/IR/DebugInfoMetadata.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/DebugInfoMetadata.h?rev=228652&r1=228651&r2=228652&view=diff
==============================================================================
--- llvm/trunk/include/llvm/IR/DebugInfoMetadata.h (original)
+++ llvm/trunk/include/llvm/IR/DebugInfoMetadata.h Mon Feb  9 19:59:57 2015
@@ -1096,24 +1096,16 @@ public:
 /// TODO: Remove File, Line and Column.  They're always 0 and never
 /// referenced.
 class MDTemplateParameter : public DebugNode {
-  unsigned Line;
-  unsigned Column;
-
 protected:
   MDTemplateParameter(LLVMContext &Context, unsigned ID, StorageType Storage,
-                      unsigned Tag, unsigned Line, unsigned Column,
-                      ArrayRef<Metadata *> Ops)
-      : DebugNode(Context, ID, Storage, Tag, Ops), Line(Line), Column(Column) {}
+                      unsigned Tag, ArrayRef<Metadata *> Ops)
+      : DebugNode(Context, ID, Storage, Tag, Ops) {}
   ~MDTemplateParameter() {}
 
 public:
-  unsigned getLine() const { return Line; }
-  unsigned getColumn() const { return Column; }
-
-  Metadata *getFile() const { return getOperand(0); }
-  Metadata *getScope() const { return getOperand(1); }
-  StringRef getName() const { return getStringOperand(2); }
-  Metadata *getType() const { return getOperand(3); }
+  Metadata *getScope() const { return getOperand(0); }
+  StringRef getName() const { return getStringOperand(1); }
+  Metadata *getType() const { return getOperand(2); }
 
   static bool classof(const Metadata *MD) {
     return MD->getMetadataID() == MDTemplateTypeParameterKind ||
@@ -1126,43 +1118,34 @@ class MDTemplateTypeParameter : public M
   friend class MDNode;
 
   MDTemplateTypeParameter(LLVMContext &Context, StorageType Storage,
-                          unsigned Line, unsigned Column,
                           ArrayRef<Metadata *> Ops)
       : MDTemplateParameter(Context, MDTemplateTypeParameterKind, Storage,
-                            dwarf::DW_TAG_template_type_parameter, Line, Column,
-                            Ops) {}
+                            dwarf::DW_TAG_template_type_parameter, Ops) {}
   ~MDTemplateTypeParameter() {}
 
   static MDTemplateTypeParameter *getImpl(LLVMContext &Context, Metadata *Scope,
                                           StringRef Name, Metadata *Type,
-                                          Metadata *File, unsigned Line,
-                                          unsigned Column, StorageType Storage,
+                                          StorageType Storage,
                                           bool ShouldCreate = true) {
     return getImpl(Context, Scope, getCanonicalMDString(Context, Name), Type,
-                   File, Line, Column, Storage, ShouldCreate);
+                   Storage, ShouldCreate);
   }
   static MDTemplateTypeParameter *getImpl(LLVMContext &Context, Metadata *Scope,
                                           MDString *Name, Metadata *Type,
-                                          Metadata *File, unsigned Line,
-                                          unsigned Column, StorageType Storage,
+                                          StorageType Storage,
                                           bool ShouldCreate = true);
 
   TempMDTemplateTypeParameter cloneImpl() const {
-    return getTemporary(getContext(), getScope(), getName(), getType(),
-                        getFile(), getLine(), getColumn());
+    return getTemporary(getContext(), getScope(), getName(), getType());
   }
 
 public:
   DEFINE_MDNODE_GET(MDTemplateTypeParameter,
-                    (Metadata * Scope, StringRef Name, Metadata *Type,
-                     Metadata *File = nullptr, unsigned Line = 0,
-                     unsigned Column = 0),
-                    (Scope, Name, Type, File, Line, Column))
+                    (Metadata * Scope, StringRef Name, Metadata *Type),
+                    (Scope, Name, Type))
   DEFINE_MDNODE_GET(MDTemplateTypeParameter,
-                    (Metadata * Scope, MDString *Name, Metadata *Type,
-                     Metadata *File = nullptr, unsigned Line = 0,
-                     unsigned Column = 0),
-                    (Scope, Name, Type, File, Line, Column))
+                    (Metadata * Scope, MDString *Name, Metadata *Type),
+                    (Scope, Name, Type))
 
   TempMDTemplateTypeParameter clone() const { return cloneImpl(); }
 
@@ -1176,43 +1159,41 @@ class MDTemplateValueParameter : public
   friend class MDNode;
 
   MDTemplateValueParameter(LLVMContext &Context, StorageType Storage,
-                           unsigned Tag, unsigned Line, unsigned Column,
-                           ArrayRef<Metadata *> Ops)
+                           unsigned Tag, ArrayRef<Metadata *> Ops)
       : MDTemplateParameter(Context, MDTemplateValueParameterKind, Storage, Tag,
-                            Line, Column, Ops) {}
+                            Ops) {}
   ~MDTemplateValueParameter() {}
 
-  static MDTemplateValueParameter *
-  getImpl(LLVMContext &Context, unsigned Tag, Metadata *Scope, StringRef Name,
-          Metadata *Type, Metadata *Value, Metadata *File, unsigned Line,
-          unsigned Column, StorageType Storage, bool ShouldCreate = true) {
+  static MDTemplateValueParameter *getImpl(LLVMContext &Context, unsigned Tag,
+                                           Metadata *Scope, StringRef Name,
+                                           Metadata *Type, Metadata *Value,
+                                           StorageType Storage,
+                                           bool ShouldCreate = true) {
     return getImpl(Context, Tag, Scope, getCanonicalMDString(Context, Name),
-                   Type, Value, File, Line, Column, Storage, ShouldCreate);
+                   Type, Value, Storage, ShouldCreate);
   }
-  static MDTemplateValueParameter *
-  getImpl(LLVMContext &Context, unsigned Tag, Metadata *Scope, MDString *Name,
-          Metadata *Type, Metadata *Value, Metadata *File, unsigned Line,
-          unsigned Column, StorageType Storage, bool ShouldCreate = true);
+  static MDTemplateValueParameter *getImpl(LLVMContext &Context, unsigned Tag,
+                                           Metadata *Scope, MDString *Name,
+                                           Metadata *Type, Metadata *Value,
+                                           StorageType Storage,
+                                           bool ShouldCreate = true);
 
   TempMDTemplateValueParameter cloneImpl() const {
     return getTemporary(getContext(), getTag(), getScope(), getName(),
-                        getType(), getValue(), getFile(), getLine(),
-                        getColumn());
+                        getType(), getValue());
   }
 
 public:
   DEFINE_MDNODE_GET(MDTemplateValueParameter,
                     (unsigned Tag, Metadata *Scope, StringRef Name,
-                     Metadata *Type, Metadata *Value, Metadata *File = nullptr,
-                     unsigned Line = 0, unsigned Column = 0),
-                    (Tag, Scope, Name, Type, Value, File, Line, Column))
+                     Metadata *Type, Metadata *Value),
+                    (Tag, Scope, Name, Type, Value))
   DEFINE_MDNODE_GET(MDTemplateValueParameter,
                     (unsigned Tag, Metadata *Scope, MDString *Name,
-                     Metadata *Type, Metadata *Value, Metadata *File = nullptr,
-                     unsigned Line = 0, unsigned Column = 0),
-                    (Tag, Scope, Name, Type, Value, File, Line, Column))
+                     Metadata *Type, Metadata *Value),
+                    (Tag, Scope, Name, Type, Value))
 
-  Metadata *getValue() const { return getOperand(4); }
+  Metadata *getValue() const { return getOperand(3); }
 
   static bool classof(const Metadata *MD) {
     return MD->getMetadataID() == MDTemplateValueParameterKind;

Modified: llvm/trunk/lib/IR/DebugInfoMetadata.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/DebugInfoMetadata.cpp?rev=228652&r1=228651&r2=228652&view=diff
==============================================================================
--- llvm/trunk/lib/IR/DebugInfoMetadata.cpp (original)
+++ llvm/trunk/lib/IR/DebugInfoMetadata.cpp Mon Feb  9 19:59:57 2015
@@ -126,6 +126,10 @@ void GenericDebugNode::recalculateHash()
 #define DEFINE_GETIMPL_STORE_NO_OPS(CLASS, ARGS)                               \
   return storeImpl(new (0u) CLASS(Context, Storage, UNWRAP_ARGS(ARGS)),        \
                    Storage, Context.pImpl->CLASS##s)
+#define DEFINE_GETIMPL_STORE_NO_CONSTRUCTOR_ARGS(CLASS, OPS)                   \
+  return storeImpl(new (ArrayRef<Metadata *>(OPS).size())                      \
+                       CLASS(Context, Storage, OPS),                           \
+                   Storage, Context.pImpl->CLASS##s)
 
 MDSubrange *MDSubrange::getImpl(LLVMContext &Context, int64_t Count, int64_t Lo,
                                 StorageType Storage, bool ShouldCreate) {
@@ -290,26 +294,23 @@ MDNamespace *MDNamespace::getImpl(LLVMCo
 
 MDTemplateTypeParameter *
 MDTemplateTypeParameter::getImpl(LLVMContext &Context, Metadata *Scope,
-                                 MDString *Name, Metadata *Type, Metadata *File,
-                                 unsigned Line, unsigned Column,
+                                 MDString *Name, Metadata *Type,
                                  StorageType Storage, bool ShouldCreate) {
   assert(isCanonical(Name) && "Expected canonical MDString");
   DEFINE_GETIMPL_LOOKUP(MDTemplateTypeParameter,
-                        (Scope, getString(Name), Type, File, Line, Column));
-  Metadata *Ops[] = {File, Scope, Name, Type};
-  DEFINE_GETIMPL_STORE(MDTemplateTypeParameter, (Line, Column), Ops);
+                        (Scope, getString(Name), Type));
+  Metadata *Ops[] = {Scope, Name, Type};
+  DEFINE_GETIMPL_STORE_NO_CONSTRUCTOR_ARGS(MDTemplateTypeParameter, Ops);
 }
 
 MDTemplateValueParameter *MDTemplateValueParameter::getImpl(
     LLVMContext &Context, unsigned Tag, Metadata *Scope, MDString *Name,
-    Metadata *Type, Metadata *Value, Metadata *File, unsigned Line,
-    unsigned Column, StorageType Storage, bool ShouldCreate) {
+    Metadata *Type, Metadata *Value, StorageType Storage, bool ShouldCreate) {
   assert(isCanonical(Name) && "Expected canonical MDString");
-  DEFINE_GETIMPL_LOOKUP(
-      MDTemplateValueParameter,
-      (Tag, Scope, getString(Name), Type, Value, File, Line, Column));
-  Metadata *Ops[] = {File, Scope, Name, Type, Value};
-  DEFINE_GETIMPL_STORE(MDTemplateValueParameter, (Tag, Line, Column), Ops);
+  DEFINE_GETIMPL_LOOKUP(MDTemplateValueParameter,
+                        (Tag, Scope, getString(Name), Type, Value));
+  Metadata *Ops[] = {Scope, Name, Type, Value};
+  DEFINE_GETIMPL_STORE(MDTemplateValueParameter, (Tag), Ops);
 }
 
 MDGlobalVariable *

Modified: llvm/trunk/lib/IR/LLVMContextImpl.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/LLVMContextImpl.h?rev=228652&r1=228651&r2=228652&view=diff
==============================================================================
--- llvm/trunk/lib/IR/LLVMContextImpl.h (original)
+++ llvm/trunk/lib/IR/LLVMContextImpl.h Mon Feb  9 19:59:57 2015
@@ -649,26 +649,17 @@ template <> struct MDNodeKeyImpl<MDTempl
   Metadata *Scope;
   StringRef Name;
   Metadata *Type;
-  Metadata *File;
-  unsigned Line;
-  unsigned Column;
-
-  MDNodeKeyImpl(Metadata *Scope, StringRef Name, Metadata *Type, Metadata *File,
-                unsigned Line, unsigned Column)
-      : Scope(Scope), Name(Name), Type(Type), File(File), Line(Line),
-        Column(Column) {}
+
+  MDNodeKeyImpl(Metadata *Scope, StringRef Name, Metadata *Type)
+      : Scope(Scope), Name(Name), Type(Type) {}
   MDNodeKeyImpl(const MDTemplateTypeParameter *N)
-      : Scope(N->getScope()), Name(N->getName()), Type(N->getType()),
-        File(N->getFile()), Line(N->getLine()), Column(N->getColumn()) {}
+      : Scope(N->getScope()), Name(N->getName()), Type(N->getType()) {}
 
   bool isKeyOf(const MDTemplateTypeParameter *RHS) const {
     return Scope == RHS->getScope() && Name == RHS->getName() &&
-           Type == RHS->getType() && File == RHS->getFile() &&
-           Line == RHS->getLine() && Column == RHS->getColumn();
-  }
-  unsigned getHashValue() const {
-    return hash_combine(Scope, Name, Type, File, Line, Column);
+           Type == RHS->getType();
   }
+  unsigned getHashValue() const { return hash_combine(Scope, Name, Type); }
 };
 
 template <> struct MDNodeKeyImpl<MDTemplateValueParameter> {
@@ -677,27 +668,21 @@ template <> struct MDNodeKeyImpl<MDTempl
   StringRef Name;
   Metadata *Type;
   Metadata *Value;
-  Metadata *File;
-  unsigned Line;
-  unsigned Column;
 
   MDNodeKeyImpl(unsigned Tag, Metadata *Scope, StringRef Name, Metadata *Type,
-                Metadata *Value, Metadata *File, unsigned Line, unsigned Column)
-      : Tag(Tag), Scope(Scope), Name(Name), Type(Type), Value(Value),
-        File(File), Line(Line), Column(Column) {}
+                Metadata *Value)
+      : Tag(Tag), Scope(Scope), Name(Name), Type(Type), Value(Value) {}
   MDNodeKeyImpl(const MDTemplateValueParameter *N)
       : Tag(N->getTag()), Scope(N->getScope()), Name(N->getName()),
-        Type(N->getType()), Value(N->getValue()), File(N->getFile()),
-        Line(N->getLine()), Column(N->getColumn()) {}
+        Type(N->getType()), Value(N->getValue()) {}
 
   bool isKeyOf(const MDTemplateValueParameter *RHS) const {
     return Tag == RHS->getTag() && Scope == RHS->getScope() &&
            Name == RHS->getName() && Type == RHS->getType() &&
-           Value == RHS->getValue() && File == RHS->getFile() &&
-           Line == RHS->getLine() && Column == RHS->getColumn();
+           Value == RHS->getValue();
   }
   unsigned getHashValue() const {
-    return hash_combine(Tag, Scope, Name, Type, Value, File, Line, Column);
+    return hash_combine(Tag, Scope, Name, Type, Value);
   }
 };
 

Modified: llvm/trunk/unittests/IR/MetadataTest.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/unittests/IR/MetadataTest.cpp?rev=228652&r1=228651&r2=228652&view=diff
==============================================================================
--- llvm/trunk/unittests/IR/MetadataTest.cpp (original)
+++ llvm/trunk/unittests/IR/MetadataTest.cpp Mon Feb  9 19:59:57 2015
@@ -1194,35 +1194,18 @@ TEST_F(MDTemplateTypeParameterTest, get)
   Metadata *Scope = MDTuple::getDistinct(Context, None);
   StringRef Name = "template";
   Metadata *Type = MDTuple::getDistinct(Context, None);
-  Metadata *File = MDTuple::getDistinct(Context, None);
-  unsigned Line = 5;
-  unsigned Column = 7;
 
-  auto *N = MDTemplateTypeParameter::get(Context, Scope, Name, Type, File, Line,
-                                         Column);
+  auto *N = MDTemplateTypeParameter::get(Context, Scope, Name, Type);
 
   EXPECT_EQ(dwarf::DW_TAG_template_type_parameter, N->getTag());
   EXPECT_EQ(Scope, N->getScope());
   EXPECT_EQ(Name, N->getName());
   EXPECT_EQ(Type, N->getType());
-  EXPECT_EQ(File, N->getFile());
-  EXPECT_EQ(Line, N->getLine());
-  EXPECT_EQ(Column, N->getColumn());
-  EXPECT_EQ(N, MDTemplateTypeParameter::get(Context, Scope, Name, Type, File,
-                                            Line, Column));
-
-  EXPECT_NE(N, MDTemplateTypeParameter::get(Context, Type, Name, Type, File,
-                                            Line, Column));
-  EXPECT_NE(N, MDTemplateTypeParameter::get(Context, Scope, "other", Type, File,
-                                            Line, Column));
-  EXPECT_NE(N, MDTemplateTypeParameter::get(Context, Scope, Name, Scope, File,
-                                            Line, Column));
-  EXPECT_NE(N, MDTemplateTypeParameter::get(Context, Scope, Name, Type, Scope,
-                                            Line, Column));
-  EXPECT_NE(N, MDTemplateTypeParameter::get(Context, Scope, Name, Type, File,
-                                            Line + 1, Column));
-  EXPECT_NE(N, MDTemplateTypeParameter::get(Context, Scope, Name, Type, File,
-                                            Line, Column + 1));
+  EXPECT_EQ(N, MDTemplateTypeParameter::get(Context, Scope, Name, Type));
+
+  EXPECT_NE(N, MDTemplateTypeParameter::get(Context, Type, Name, Type));
+  EXPECT_NE(N, MDTemplateTypeParameter::get(Context, Scope, "other", Type));
+  EXPECT_NE(N, MDTemplateTypeParameter::get(Context, Scope, Name, Scope));
 }
 
 typedef MetadataTest MDTemplateValueParameterTest;
@@ -1233,40 +1216,28 @@ TEST_F(MDTemplateValueParameterTest, get
   StringRef Name = "template";
   Metadata *Type = MDTuple::getDistinct(Context, None);
   Metadata *Value = MDTuple::getDistinct(Context, None);
-  Metadata *File = MDTuple::getDistinct(Context, None);
-  unsigned Line = 5;
-  unsigned Column = 7;
 
-  auto *N = MDTemplateValueParameter::get(Context, Tag, Scope, Name, Type,
-                                          Value, File, Line, Column);
+  auto *N =
+      MDTemplateValueParameter::get(Context, Tag, Scope, Name, Type, Value);
   EXPECT_EQ(Tag, N->getTag());
   EXPECT_EQ(Scope, N->getScope());
   EXPECT_EQ(Name, N->getName());
   EXPECT_EQ(Type, N->getType());
   EXPECT_EQ(Value, N->getValue());
-  EXPECT_EQ(File, N->getFile());
-  EXPECT_EQ(Line, N->getLine());
-  EXPECT_EQ(Column, N->getColumn());
-  EXPECT_EQ(N, MDTemplateValueParameter::get(Context, Tag, Scope, Name, Type,
-                                             Value, File, Line, Column));
+  EXPECT_EQ(
+      N, MDTemplateValueParameter::get(Context, Tag, Scope, Name, Type, Value));
 
   EXPECT_NE(N, MDTemplateValueParameter::get(
                    Context, dwarf::DW_TAG_GNU_template_template_param, Scope,
-                   Name, Type, Value, File, Line, Column));
-  EXPECT_NE(N, MDTemplateValueParameter::get(Context, Tag, Type, Name, Type,
-                                             Value, File, Line, Column));
+                   Name, Type, Value));
+  EXPECT_NE(
+      N, MDTemplateValueParameter::get(Context, Tag, Type, Name, Type, Value));
   EXPECT_NE(N, MDTemplateValueParameter::get(Context, Tag, Scope, "other", Type,
-                                             Value, File, Line, Column));
+                                             Value));
   EXPECT_NE(N, MDTemplateValueParameter::get(Context, Tag, Scope, Name, Scope,
-                                             Value, File, Line, Column));
-  EXPECT_NE(N, MDTemplateValueParameter::get(Context, Tag, Scope, Name, Type,
-                                             Scope, File, Line, Column));
-  EXPECT_NE(N, MDTemplateValueParameter::get(Context, Tag, Scope, Name, Type,
-                                             Value, Scope, Line, Column));
-  EXPECT_NE(N, MDTemplateValueParameter::get(Context, Tag, Scope, Name, Type,
-                                             Value, File, Line + 1, Column));
-  EXPECT_NE(N, MDTemplateValueParameter::get(Context, Tag, Scope, Name, Type,
-                                             Value, File, Line, Column + 1));
+                                             Value));
+  EXPECT_NE(
+      N, MDTemplateValueParameter::get(Context, Tag, Scope, Name, Type, Scope));
 }
 
 typedef MetadataTest MDGlobalVariableTest;





More information about the llvm-commits mailing list