Make the compile unit map a MapVector so that we can assume a stable
authorEric Christopher <echristo@gmail.com>
Wed, 29 Jan 2014 22:06:23 +0000 (22:06 +0000)
committerEric Christopher <echristo@gmail.com>
Wed, 29 Jan 2014 22:06:23 +0000 (22:06 +0000)
output ordering.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@200421 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/AsmPrinter/DwarfDebug.cpp
lib/CodeGen/AsmPrinter/DwarfDebug.h

index 610907255b915f484e9f4a05ff0e229cd44c56eb..66be6058fd2edf3024c223b76d2cd23f6aa34df6 100644 (file)
@@ -2880,8 +2880,9 @@ void DwarfDebug::emitDebugRanges() {
   unsigned char Size = Asm->getDataLayout().getPointerSize();
 
   // Grab the specific ranges for the compile units in the module.
-  for (DenseMap<const MDNode *, DwarfCompileUnit *>::iterator I = CUMap.begin(),
-                                                              E = CUMap.end();
+  for (MapVector<const MDNode *, DwarfCompileUnit *>::iterator
+           I = CUMap.begin(),
+           E = CUMap.end();
        I != E; ++I) {
     DwarfCompileUnit *TheCU = I->second;
 
index 11695a5735d10e141524d22f1fe242f7087955a5..4649cec3388ea1e8d8dc69f66c2f0303de9c7b2e 100644 (file)
@@ -21,6 +21,7 @@
 #include "llvm/ADT/SetVector.h"
 #include "llvm/ADT/SmallPtrSet.h"
 #include "llvm/ADT/StringMap.h"
+#include "llvm/ADT/MapVector.h"
 #include "llvm/CodeGen/AsmPrinter.h"
 #include "llvm/CodeGen/LexicalScopes.h"
 #include "llvm/DebugInfo.h"
@@ -334,7 +335,7 @@ class DwarfDebug : public AsmPrinterHandler {
   DwarfCompileUnit *FirstCU;
 
   // Maps MDNode with its corresponding DwarfCompileUnit.
-  DenseMap<const MDNode *, DwarfCompileUnit *> CUMap;
+  MapVector<const MDNode *, DwarfCompileUnit *> CUMap;
 
   // Maps subprogram MDNode with its corresponding DwarfCompileUnit.
   DenseMap<const MDNode *, DwarfCompileUnit *> SPMap;