[llvm] r300060 - [MachineBlockPlacment] Add an assert to ensure there is no order dependency on DenseMap iteration order.

Benjamin Kramer via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 12 06:26:31 PDT 2017


Author: d0k
Date: Wed Apr 12 08:26:31 2017
New Revision: 300060

URL: http://llvm.org/viewvc/llvm-project?rev=300060&view=rev
Log:
[MachineBlockPlacment] Add an assert to ensure there is no order dependency on DenseMap iteration order.

Modified:
    llvm/trunk/lib/CodeGen/MachineBlockPlacement.cpp

Modified: llvm/trunk/lib/CodeGen/MachineBlockPlacement.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/MachineBlockPlacement.cpp?rev=300060&r1=300059&r2=300060&view=diff
==============================================================================
--- llvm/trunk/lib/CodeGen/MachineBlockPlacement.cpp (original)
+++ llvm/trunk/lib/CodeGen/MachineBlockPlacement.cpp Wed Apr 12 08:26:31 2017
@@ -1160,8 +1160,8 @@ void MachineBlockPlacement::precomputeTr
       TriangleChainMap.insert(std::make_pair(Chain.getKey(), std::move(Chain)));
     } else {
       auto InsertResult = TriangleChainMap.try_emplace(PDom, &BB, PDom);
-      assert (InsertResult.second && "Block seen twice.");
-      (void) InsertResult;
+      assert(InsertResult.second && "Block seen twice.");
+      (void)InsertResult;
     }
   }
 
@@ -1177,7 +1177,11 @@ void MachineBlockPlacement::precomputeTr
     for (MachineBasicBlock *src : reverse(Chain.Edges)) {
       DEBUG(dbgs() << "Marking edge: " << getBlockName(src) << "->" <<
             getBlockName(dst) << " as pre-computed based on triangles.\n");
-      ComputedEdges[src] = { dst, true };
+
+      auto InsertResult = ComputedEdges.insert({src, {dst, true}});
+      assert(InsertResult.second && "Block seen twice.");
+      (void)InsertResult;
+
       dst = src;
     }
   }




More information about the llvm-commits mailing list