From 08859be344670e39cdbbe539caa74272b0b4ad7f Mon Sep 17 00:00:00 2001 From: Hideto Ueno Date: Wed, 15 Mar 2023 23:42:38 +0900 Subject: [PATCH] [ExtractInstances] Fix nondeterminism with MapVector. (#4749) (#4833) This fixes nondeterminism caused by iteration over DenseMap. Instead use MapVector to guarantee determinism. --- lib/Dialect/FIRRTL/Transforms/ExtractInstances.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/Dialect/FIRRTL/Transforms/ExtractInstances.cpp b/lib/Dialect/FIRRTL/Transforms/ExtractInstances.cpp index 31d88ea51363..e21241c73137 100644 --- a/lib/Dialect/FIRRTL/Transforms/ExtractInstances.cpp +++ b/lib/Dialect/FIRRTL/Transforms/ExtractInstances.cpp @@ -837,7 +837,7 @@ void ExtractInstancesPass::groupInstances() { // module. Note that we cannot group instances that landed in different parent // modules into the same submodule, so we use that parent module as a grouping // key. - SmallDenseMap, SmallVector> + llvm::MapVector, SmallVector> instsByWrapper; for (auto &[inst, info] : extractedInstances) { if (!info.wrapperModule.empty())