Enumerate function-local metadata (and its types and operands) only during function-incorporation, global metadata continues to be enumerated during creation of ValueEnumerator

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93338 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Bitcode/Writer/ValueEnumerator.h b/lib/Bitcode/Writer/ValueEnumerator.h
index c50fe9c..cf00e4c 100644
--- a/lib/Bitcode/Writer/ValueEnumerator.h
+++ b/lib/Bitcode/Writer/ValueEnumerator.h
@@ -105,6 +105,7 @@
   
   const ValueList &getValues() const { return Values; }
   const ValueList &getMDValues() const { return MDValues; }
+  ValueList getMDValues() { return MDValues; }
   const TypeList &getTypes() const { return Types; }
   const std::vector<const BasicBlock*> &getBasicBlocks() const {
     return BasicBlocks; 
@@ -127,11 +128,11 @@
 private:
   void OptimizeConstants(unsigned CstStart, unsigned CstEnd);
     
-  void EnumerateMetadata(const MetadataBase *MD);
+  void EnumerateMetadata(const MetadataBase *MD, bool isGlobal);
   void EnumerateNamedMDNode(const NamedMDNode *NMD);
-  void EnumerateValue(const Value *V);
+  void EnumerateValue(const Value *V, bool isGlobal = true);
   void EnumerateType(const Type *T);
-  void EnumerateOperandType(const Value *V);
+  void EnumerateOperandType(const Value *V, bool isGlobal);
   void EnumerateAttributes(const AttrListPtr &PAL);
   
   void EnumerateTypeSymbolTable(const TypeSymbolTable &ST);