[llvm] r213921 - llvm-vtabledump: use a std::map instead of a StringMap for VBTables

David Majnemer david.majnemer at gmail.com
Thu Jul 24 21:30:12 PDT 2014


Author: majnemer
Date: Thu Jul 24 23:30:11 2014
New Revision: 213921

URL: http://llvm.org/viewvc/llvm-project?rev=213921&view=rev
Log:
llvm-vtabledump: use a std::map instead of a StringMap for VBTables

StringMap doesn't guarantee any particular iteration order,
this is suboptimal when comparing llvm-vtabledump's output for two
object files.

Modified:
    llvm/trunk/tools/llvm-vtabledump/llvm-vtabledump.cpp

Modified: llvm/trunk/tools/llvm-vtabledump/llvm-vtabledump.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-vtabledump/llvm-vtabledump.cpp?rev=213921&r1=213920&r2=213921&view=diff
==============================================================================
--- llvm/trunk/tools/llvm-vtabledump/llvm-vtabledump.cpp (original)
+++ llvm/trunk/tools/llvm-vtabledump/llvm-vtabledump.cpp Thu Jul 24 23:30:11 2014
@@ -15,7 +15,6 @@
 #include "llvm-vtabledump.h"
 #include "Error.h"
 #include "llvm/ADT/ArrayRef.h"
-#include "llvm/ADT/StringMap.h"
 #include "llvm/Object/Archive.h"
 #include "llvm/Object/ObjectFile.h"
 #include "llvm/Support/Debug.h"
@@ -71,7 +70,7 @@ static void reportError(StringRef Input,
 
 static void dumpVTables(const ObjectFile *Obj) {
   std::map<std::pair<StringRef, uint64_t>, StringRef> VFTableEntries;
-  StringMap<ArrayRef<aligned_little32_t>> VBTables;
+  std::map<StringRef, ArrayRef<aligned_little32_t>> VBTables;
   for (const object::SymbolRef &Sym : Obj->symbols()) {
     StringRef SymName;
     if (error(Sym.getName(SymName)))
@@ -126,12 +125,13 @@ static void dumpVTables(const ObjectFile
     StringRef SymName = VFTableEntry.second;
     outs() << VFTableName << '[' << Offset << "]: " << SymName << '\n';
   }
-  for (const StringMapEntry<ArrayRef<aligned_little32_t>> &VBTable : VBTables) {
-    StringRef VBTableName = VBTable.getKey();
+  for (const std::pair<StringRef, ArrayRef<aligned_little32_t>> &VBTable :
+       VBTables) {
+    StringRef VBTableName = VBTable.first;
     uint32_t Idx = 0;
-    for (aligned_little32_t Offset : VBTable.getValue()) {
+    for (aligned_little32_t Offset : VBTable.second) {
       outs() << VBTableName << '[' << Idx << "]: " << Offset << '\n';
-      Idx += sizeof(aligned_little32_t);
+      Idx += sizeof(Offset);
     }
   }
 }





More information about the llvm-commits mailing list