DebugInfo: Simplify Address Pool index handling.
authorDavid Blaikie <dblaikie@gmail.com>
Mon, 8 Jul 2013 17:33:10 +0000 (17:33 +0000)
committerDavid Blaikie <dblaikie@gmail.com>
Mon, 8 Jul 2013 17:33:10 +0000 (17:33 +0000)
Since the pool indexes are necessarily sequential and contiguous, just
insert things in the right place rather than having to sort the sequence
after the fact.

No functionality change.

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

lib/CodeGen/AsmPrinter/DwarfDebug.cpp

index 401e67cf04e472e445df074c341897410883150c..6b06d8b99b3d72a17eafbc9c327e07c0a515ef31 100644 (file)
@@ -2385,19 +2385,17 @@ void DwarfUnits::emitAddresses(const MCSection *AddrSection) {
 
   // Get all of the address pool entries and put them in an array by their ID so
   // we can sort them.
-  SmallVector<std::pair<unsigned, const MCExpr *>, 64> Entries;
+  SmallVector<const MCExpr *, 64> Entries(AddressPool.size());
 
   for (DenseMap<const MCExpr *, unsigned>::iterator
            I = AddressPool.begin(),
            E = AddressPool.end();
        I != E; ++I)
-    Entries.push_back(std::make_pair(I->second, I->first));
-
-  array_pod_sort(Entries.begin(), Entries.end());
+    Entries[I->second] = I->first;
 
   for (unsigned i = 0, e = Entries.size(); i != e; ++i) {
     // Emit an expression for reference from debug information entries.
-    if (const MCExpr *Expr = Entries[i].second)
+    if (const MCExpr *Expr = Entries[i])
       Asm->OutStreamer.EmitValue(Expr, Asm->getDataLayout().getPointerSize());
     else
       Asm->OutStreamer.EmitIntValue(0, Asm->getDataLayout().getPointerSize());