Skip to content

Commit 4d42a0c

Browse files
[Scalar] Avoid deep copies of DenseMap (NFC) (#168012)
Passing BlockOrder by value results in deep copies of DenseMap. This patch replaces them with const l-value references.
1 parent afbbd54 commit 4d42a0c

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

llvm/lib/Transforms/Scalar/GVNSink.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,7 @@ class ModelledPHI {
142142
for (unsigned I = 0, E = PN->getNumIncomingValues(); I != E; ++I)
143143
Ops.push_back({PN->getIncomingBlock(I), PN->getIncomingValue(I)});
144144

145-
auto ComesBefore = [BlockOrder](OpsType O1, OpsType O2) {
145+
auto ComesBefore = [&](OpsType O1, OpsType O2) {
146146
return BlockOrder.lookup(O1.first) < BlockOrder.lookup(O2.first);
147147
};
148148
// Sort in a deterministic order.
@@ -167,8 +167,8 @@ class ModelledPHI {
167167
verifyModelledPHI(const DenseMap<const BasicBlock *, unsigned> &BlockOrder) {
168168
assert(Values.size() > 1 && Blocks.size() > 1 &&
169169
"Modelling PHI with less than 2 values");
170-
auto ComesBefore = [BlockOrder](const BasicBlock *BB1,
171-
const BasicBlock *BB2) {
170+
[[maybe_unused]] auto ComesBefore = [&](const BasicBlock *BB1,
171+
const BasicBlock *BB2) {
172172
return BlockOrder.lookup(BB1) < BlockOrder.lookup(BB2);
173173
};
174174
assert(llvm::is_sorted(Blocks, ComesBefore));

0 commit comments

Comments
 (0)