diff --git a/llvm/lib/CodeGen/RegisterBankInfo.cpp b/llvm/lib/CodeGen/RegisterBankInfo.cpp index 00dcc1fbcd0c7..e1720b038e236 100644 --- a/llvm/lib/CodeGen/RegisterBankInfo.cpp +++ b/llvm/lib/CodeGen/RegisterBankInfo.cpp @@ -103,12 +103,10 @@ const TargetRegisterClass * RegisterBankInfo::getMinimalPhysRegClass(Register Reg, const TargetRegisterInfo &TRI) const { assert(Reg.isPhysical() && "Reg must be a physreg"); - const auto &RegRCIt = PhysRegMinimalRCs.find(Reg); - if (RegRCIt != PhysRegMinimalRCs.end()) - return RegRCIt->second; - const TargetRegisterClass *PhysRC = TRI.getMinimalPhysRegClassLLT(Reg, LLT()); - PhysRegMinimalRCs[Reg] = PhysRC; - return PhysRC; + const auto [RegRCIt, Inserted] = PhysRegMinimalRCs.try_emplace(Reg); + if (Inserted) + RegRCIt->second = TRI.getMinimalPhysRegClassLLT(Reg, LLT()); + return RegRCIt->second; } const RegisterBank *RegisterBankInfo::getRegBankFromConstraints(