aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDevang Patel <dpatel@apple.com>2009-10-22 17:40:37 +0000
committerDevang Patel <dpatel@apple.com>2009-10-22 17:40:37 +0000
commitd41fc65c567b15a71b944a64239c785f0da860c2 (patch)
treee285aa9e8c5c1f24e0bd5da2517d967ae91d9770
parent4a53e1ef9d137af590425f77f02a4e974f370656 (diff)
Sort handler names to ensure deterministic behavior.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84878 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--include/llvm/Metadata.h6
-rw-r--r--lib/VMCore/Metadata.cpp5
2 files changed, 6 insertions, 5 deletions
diff --git a/include/llvm/Metadata.h b/include/llvm/Metadata.h
index a9c242c508..93207b18cc 100644
--- a/include/llvm/Metadata.h
+++ b/include/llvm/Metadata.h
@@ -285,9 +285,9 @@ public:
/// the same metadata to In2.
void copyMD(Instruction *In1, Instruction *In2);
- /// getHandlerNames - Get handler names. This is used by bitcode
- /// writer.
- void getHandlerNames(SmallVectorImpl<std::pair<unsigned, StringRef> >&N) const;
+ /// getHandlerNames - Populate client supplied smallvector using custome
+ /// metadata name and ID.
+ void getHandlerNames(SmallVectorImpl<std::pair<unsigned, StringRef> >&) const;
/// ValueIsDeleted - This handler is used to update metadata store
/// when a value is deleted.
diff --git a/lib/VMCore/Metadata.cpp b/lib/VMCore/Metadata.cpp
index f45114c6ff..69b2c6f3f3 100644
--- a/lib/VMCore/Metadata.cpp
+++ b/lib/VMCore/Metadata.cpp
@@ -304,13 +304,14 @@ MetadataContext::getMDs(const Instruction *Inst) {
return &I->second;
}
-/// getHandlerNames - Get handler names. This is used by bitcode
-/// writer and aswm writer.
+/// getHandlerNames - Populate client supplied smallvector using custome
+/// metadata name and ID.
void MetadataContext::
getHandlerNames(SmallVectorImpl<std::pair<unsigned, StringRef> >&Names) const {
for (StringMap<unsigned>::const_iterator I = MDHandlerNames.begin(),
E = MDHandlerNames.end(); I != E; ++I)
Names.push_back(std::make_pair(I->second, I->first()));
+ std::sort(Names.begin(), Names.end());
}
/// ValueIsCloned - This handler is used to update metadata store