IR: Remove dead code in metadata bitcode writing, NFC
authorDuncan P. N. Exon Smith <dexonsmith@apple.com>
Tue, 21 Oct 2014 22:13:34 +0000 (22:13 +0000)
committerDuncan P. N. Exon Smith <dexonsmith@apple.com>
Tue, 21 Oct 2014 22:13:34 +0000 (22:13 +0000)
No one cares how many uses each metadata value has, so don't bother
counting.

llvm-svn: 220337

llvm/lib/Bitcode/Writer/BitcodeWriter.cpp
llvm/lib/Bitcode/Writer/ValueEnumerator.cpp
llvm/lib/Bitcode/Writer/ValueEnumerator.h

index 3b5d46f..191fdc9 100644 (file)
@@ -756,13 +756,13 @@ static void WriteMDNode(const MDNode *N,
 static void WriteModuleMetadata(const Module *M,
                                 const ValueEnumerator &VE,
                                 BitstreamWriter &Stream) {
-  const ValueEnumerator::ValueList &Vals = VE.getMDValues();
+  const auto &Vals = VE.getMDValues();
   bool StartedMetadataBlock = false;
   unsigned MDSAbbrev = 0;
   SmallVector<uint64_t, 64> Record;
   for (unsigned i = 0, e = Vals.size(); i != e; ++i) {
 
-    if (const MDNode *N = dyn_cast<MDNode>(Vals[i].first)) {
+    if (const MDNode *N = dyn_cast<MDNode>(Vals[i])) {
       if (!N->isFunctionLocal() || !N->getFunction()) {
         if (!StartedMetadataBlock) {
           Stream.EnterSubblock(bitc::METADATA_BLOCK_ID, 3);
@@ -770,7 +770,7 @@ static void WriteModuleMetadata(const Module *M,
         }
         WriteMDNode(N, VE, Stream, Record);
       }
-    } else if (const MDString *MDS = dyn_cast<MDString>(Vals[i].first)) {
+    } else if (const MDString *MDS = dyn_cast<MDString>(Vals[i])) {
       if (!StartedMetadataBlock)  {
         Stream.EnterSubblock(bitc::METADATA_BLOCK_ID, 3);
 
index 4ed739e..f2be18e 100644 (file)
@@ -509,12 +509,10 @@ void ValueEnumerator::EnumerateMetadata(const Value *MD) {
 
   // Check to see if it's already in!
   unsigned &MDValueID = MDValueMap[MD];
-  if (MDValueID) {
-    // Increment use count.
-    MDValues[MDValueID-1].second++;
+  if (MDValueID)
     return;
-  }
-  MDValues.push_back(std::make_pair(MD, 1U));
+
+  MDValues.push_back(MD);
   MDValueID = MDValues.size();
 
   // Enumerate all non-function-local operands.
@@ -533,12 +531,10 @@ void ValueEnumerator::EnumerateFunctionLocalMetadata(const MDNode *N) {
 
   // Check to see if it's already in!
   unsigned &MDValueID = MDValueMap[N];
-  if (MDValueID) {
-    // Increment use count.
-    MDValues[MDValueID-1].second++;
+  if (MDValueID)
     return;
-  }
-  MDValues.push_back(std::make_pair(N, 1U));
+
+  MDValues.push_back(N);
   MDValueID = MDValues.size();
 
   // To incoroporate function-local information visit all function-local
@@ -766,7 +762,7 @@ void ValueEnumerator::purgeFunction() {
   for (unsigned i = NumModuleValues, e = Values.size(); i != e; ++i)
     ValueMap.erase(Values[i].first);
   for (unsigned i = NumModuleMDValues, e = MDValues.size(); i != e; ++i)
-    MDValueMap.erase(MDValues[i].first);
+    MDValueMap.erase(MDValues[i]);
   for (unsigned i = 0, e = BasicBlocks.size(); i != e; ++i)
     ValueMap.erase(BasicBlocks[i]);
 
index eba768d..80e3e6b 100644 (file)
@@ -58,7 +58,7 @@ private:
   typedef UniqueVector<const Comdat *> ComdatSetType;
   ComdatSetType Comdats;
 
-  ValueList MDValues;
+  std::vector<const Value *> MDValues;
   SmallVector<const MDNode *, 8> FunctionLocalMDs;
   ValueMapType MDValueMap;
 
@@ -134,7 +134,7 @@ public:
   }
 
   const ValueList &getValues() const { return Values; }
-  const ValueList &getMDValues() const { return MDValues; }
+  const std::vector<const Value *> &getMDValues() const { return MDValues; }
   const SmallVectorImpl<const MDNode *> &getFunctionLocalMDValues() const {
     return FunctionLocalMDs;
   }