IR: Sink MDNode::Hash down to GenericMDNode::Hash
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>
Tue, 18 Nov 2014 02:20:29 +0000 (02:20 +0000)
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>
Tue, 18 Nov 2014 02:20:29 +0000 (02:20 +0000)
Part of PR21532.

llvm-svn: 222212

llvm/include/llvm/IR/Metadata.h
llvm/lib/IR/Metadata.cpp

index 6da5b21..a056b0d 100644 (file)
@@ -164,10 +164,6 @@ protected:
     llvm_unreachable("Constructor throws?");
   }
 
-  // TODO: Sink this into GenericMDNode.  Can't do this until operands are
-  // allocated at the front (currently they're at the back).
-  unsigned Hash;
-
   /// \brief Subclass data enums.
   enum {
     /// FunctionLocalBit - This bit is set if this MDNode is function local.
@@ -285,8 +281,10 @@ class GenericMDNode : public MDNode {
   friend class MDNode;
   friend class LLVMContextImpl;
 
+  unsigned Hash;
+
   GenericMDNode(LLVMContext &C, ArrayRef<Value *> Vals, bool isFunctionLocal)
-      : MDNode(C, GenericMDNodeVal, Vals, isFunctionLocal) {}
+      : MDNode(C, GenericMDNodeVal, Vals, isFunctionLocal), Hash(0) {}
   ~GenericMDNode();
 
   void dropAllReferences();
index b4da2e0..27ba9f7 100644 (file)
@@ -140,7 +140,7 @@ void MDNode::operator delete(void *Mem) {
 
 MDNode::MDNode(LLVMContext &C, unsigned ID, ArrayRef<Value *> Vals,
                bool isFunctionLocal)
-    : Metadata(C, ID), Hash(0) {
+    : Metadata(C, ID) {
   NumOperands = Vals.size();
 
   if (isFunctionLocal)