From 0ebb75fe27fad3b0d81470d3408f533637dabee4 Mon Sep 17 00:00:00 2001 From: Langston Barrett Date: Fri, 29 Apr 2022 08:59:19 -0400 Subject: [PATCH] eqrel: Simplify insertAll This loop isn't parallel, so there's no reason to use getChunks. Also, use modern C++ for-each loops and structured bindings. --- .../souffle/datastructure/EquivalenceRelation.h | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/src/include/souffle/datastructure/EquivalenceRelation.h b/src/include/souffle/datastructure/EquivalenceRelation.h index c22f9c23d31..aebc569a40f 100644 --- a/src/include/souffle/datastructure/EquivalenceRelation.h +++ b/src/include/souffle/datastructure/EquivalenceRelation.h @@ -114,14 +114,10 @@ class EquivalenceRelation { other.genAllDisjointSetLists(); // iterate over partitions at a time - for (typename StatesMap::chunk it : other.equivalencePartition.getChunks(MAX_THREADS)) { - for (auto& p : it) { - value_type rep = p.first; - StatesList& pl = *p.second; - const std::size_t ksize = pl.size(); - for (std::size_t i = 0; i < ksize; ++i) { - this->sds.unionNodes(rep, pl.get(i)); - } + for (auto&& [rep, pl] : other.equivalencePartition) { + const std::size_t ksize = pl->size(); + for (std::size_t i = 0; i < ksize; ++i) { + this->sds.unionNodes(rep, pl->get(i)); } } // invalidate iterators unconditionally