From d41fc65c567b15a71b944a64239c785f0da860c2 Mon Sep 17 00:00:00 2001 From: Devang Patel Date: Thu, 22 Oct 2009 17:40:37 +0000 Subject: [PATCH] Sort handler names to ensure deterministic behavior. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84878 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/Metadata.h | 6 +++--- lib/VMCore/Metadata.cpp | 5 +++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/include/llvm/Metadata.h b/include/llvm/Metadata.h index a9c242c5085..93207b18cc7 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 >&N) const; + /// getHandlerNames - Populate client supplied smallvector using custome + /// metadata name and ID. + void getHandlerNames(SmallVectorImpl >&) 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 f45114c6ff1..69b2c6f3f37 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 >&Names) const { for (StringMap::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 -- 2.34.1