diff --git a/llvm/lib/Transforms/Scalar/GVNSink.cpp b/llvm/lib/Transforms/Scalar/GVNSink.cpp index 3dfa2dd9df27f..59dfe33d8003e 100644 --- a/llvm/lib/Transforms/Scalar/GVNSink.cpp +++ b/llvm/lib/Transforms/Scalar/GVNSink.cpp @@ -535,14 +535,10 @@ class ValueTable { uint32_t e = ExpressionNumbering[exp]; if (!e) { hash_code H = exp->getHashValue([=](Value *V) { return lookupOrAdd(V); }); - auto I = HashNumbering.find(H); - if (I != HashNumbering.end()) { - e = I->second; - } else { - e = nextValueNumber++; - HashNumbering[H] = e; - ExpressionNumbering[exp] = e; - } + auto [I, Inserted] = HashNumbering.try_emplace(H, nextValueNumber); + e = I->second; + if (Inserted) + ExpressionNumbering[exp] = nextValueNumber++; } ValueNumbering[V] = e; return e;