[llvm] r226523 - IR: Cleanup MDNode field use, NFC

Duncan P. N. Exon Smith dexonsmith at apple.com
Mon Jan 19 15:18:34 PST 2015


Author: dexonsmith
Date: Mon Jan 19 17:18:34 2015
New Revision: 226523

URL: http://llvm.org/viewvc/llvm-project?rev=226523&view=rev
Log:
IR: Cleanup MDNode field use, NFC

Swap usage of `SubclassData32` and `MDNodeSubclassData`, and rename
`MDNodeSubclassData` to `NumUnresolved`.  Small drive-by cleanup to
`countUnresolvedOperands()` since otherwise the name clash with local
vars named `NumUnresolved` would be confusing.

Modified:
    llvm/trunk/include/llvm/IR/Metadata.h
    llvm/trunk/lib/IR/Metadata.cpp

Modified: llvm/trunk/include/llvm/IR/Metadata.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/IR/Metadata.h?rev=226523&r1=226522&r2=226523&view=diff
==============================================================================
--- llvm/trunk/include/llvm/IR/Metadata.h (original)
+++ llvm/trunk/include/llvm/IR/Metadata.h Mon Jan 19 17:18:34 2015
@@ -684,14 +684,11 @@ class MDNode : public Metadata {
   void operator=(const MDNode &) LLVM_DELETED_FUNCTION;
   void *operator new(size_t) LLVM_DELETED_FUNCTION;
 
-protected:
-  ContextAndReplaceableUses Context;
-
-private:
   unsigned NumOperands;
+  unsigned NumUnresolved;
 
 protected:
-  unsigned MDNodeSubclassData;
+  ContextAndReplaceableUses Context;
 
   void *operator new(size_t Size, unsigned NumOps);
   void operator delete(void *Mem);
@@ -808,7 +805,7 @@ private:
   void resolve();
   void resolveAfterOperandChange(Metadata *Old, Metadata *New);
   void decrementUnresolvedOperandCount();
-  unsigned countUnresolvedOperands() const;
+  unsigned countUnresolvedOperands();
 
   /// \brief Mutate this to be "uniqued".
   ///
@@ -879,7 +876,7 @@ class MDTuple : public MDNode {
   }
   ~MDTuple() { dropAllReferences(); }
 
-  void setHash(unsigned Hash) { MDNodeSubclassData = Hash; }
+  void setHash(unsigned Hash) { SubclassData32 = Hash; }
   void recalculateHash();
 
   static MDTuple *getImpl(LLVMContext &Context, ArrayRef<Metadata *> MDs,
@@ -887,7 +884,7 @@ class MDTuple : public MDNode {
 
 public:
   /// \brief Get the hash, if any.
-  unsigned getHash() const { return MDNodeSubclassData; }
+  unsigned getHash() const { return SubclassData32; }
 
   static MDTuple *get(LLVMContext &Context, ArrayRef<Metadata *> MDs) {
     return getImpl(Context, MDs, Uniqued);
@@ -978,7 +975,7 @@ public:
         getImpl(Context, Line, Column, Scope, InlinedAt, Temporary));
   }
 
-  unsigned getLine() const { return MDNodeSubclassData; }
+  unsigned getLine() const { return SubclassData32; }
   unsigned getColumn() const { return SubclassData16; }
   Metadata *getScope() const { return getOperand(0); }
   Metadata *getInlinedAt() const {

Modified: llvm/trunk/lib/IR/Metadata.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/IR/Metadata.cpp?rev=226523&r1=226522&r2=226523&view=diff
==============================================================================
--- llvm/trunk/lib/IR/Metadata.cpp (original)
+++ llvm/trunk/lib/IR/Metadata.cpp Mon Jan 19 17:18:34 2015
@@ -398,23 +398,20 @@ void MDNode::operator delete(void *Mem)
 
 MDNode::MDNode(LLVMContext &Context, unsigned ID, StorageType Storage,
                ArrayRef<Metadata *> MDs)
-    : Metadata(ID, Storage), Context(Context), NumOperands(MDs.size()),
-      MDNodeSubclassData(0) {
+    : Metadata(ID, Storage), NumOperands(MDs.size()), NumUnresolved(0),
+      Context(Context) {
   for (unsigned I = 0, E = MDs.size(); I != E; ++I)
     setOperand(I, MDs[I]);
 
   if (isDistinct())
     return;
 
-  if (isUniqued()) {
-    // Check whether any operands are unresolved, requiring re-uniquing.
-    unsigned NumUnresolved = countUnresolvedOperands();
-    if (!NumUnresolved)
+  if (isUniqued())
+    // Check whether any operands are unresolved, requiring re-uniquing.  If
+    // not, don't support RAUW.
+    if (!countUnresolvedOperands())
       return;
 
-    SubclassData32 = NumUnresolved;
-  }
-
   this->Context.makeReplaceable(make_unique<ReplaceableMetadataImpl>(Context));
 }
 
@@ -424,8 +421,8 @@ static bool isOperandUnresolved(Metadata
   return false;
 }
 
-unsigned MDNode::countUnresolvedOperands() const {
-  unsigned NumUnresolved = 0;
+unsigned MDNode::countUnresolvedOperands() {
+  assert(NumUnresolved == 0 && "Expected unresolved ops to be uncounted");
   for (const auto &Op : operands())
     NumUnresolved += unsigned(isOperandUnresolved(Op));
   return NumUnresolved;
@@ -437,9 +434,7 @@ void MDNode::makeUniqued() {
 
   // Make this 'uniqued'.
   Storage = Uniqued;
-  if (unsigned NumUnresolved = countUnresolvedOperands())
-    SubclassData32 = NumUnresolved;
-  else
+  if (!countUnresolvedOperands())
     resolve();
 
   assert(isUniqued() && "Expected this to be uniqued");
@@ -464,7 +459,7 @@ void MDNode::resolve() {
 
   // Move the map, so that this immediately looks resolved.
   auto Uses = Context.takeReplaceableUses();
-  SubclassData32 = 0;
+  NumUnresolved = 0;
   assert(isResolved() && "Expected this to be resolved");
 
   // Drop RAUW support.
@@ -472,19 +467,19 @@ void MDNode::resolve() {
 }
 
 void MDNode::resolveAfterOperandChange(Metadata *Old, Metadata *New) {
-  assert(SubclassData32 != 0 && "Expected unresolved operands");
+  assert(NumUnresolved != 0 && "Expected unresolved operands");
 
   // Check if an operand was resolved.
   if (!isOperandUnresolved(Old)) {
     if (isOperandUnresolved(New))
       // An operand was un-resolved!
-      ++SubclassData32;
+      ++NumUnresolved;
   } else if (!isOperandUnresolved(New))
     decrementUnresolvedOperandCount();
 }
 
 void MDNode::decrementUnresolvedOperandCount() {
-  if (!--SubclassData32)
+  if (!--NumUnresolved)
     // Last unresolved operand has just been resolved.
     resolve();
 }
@@ -694,7 +689,7 @@ MDLocation::MDLocation(LLVMContext &C, S
   assert(Line < (1u << 24) && "Expected 24-bit line");
   assert(Column < (1u << 16) && "Expected 16-bit column");
 
-  MDNodeSubclassData = Line;
+  SubclassData32 = Line;
   SubclassData16 = Column;
 }
 





More information about the llvm-commits mailing list