Index: lib/Target/X86/X86OptimizeLEAs.cpp =================================================================== --- lib/Target/X86/X86OptimizeLEAs.cpp +++ lib/Target/X86/X86OptimizeLEAs.cpp @@ -514,8 +514,14 @@ MachineInstr *DefMI; int64_t AddrDispShift; int Dist; - if (!chooseBestLEA(LEAs[getMemOpKey(MI, MemOpNo)], MI, DefMI, AddrDispShift, - Dist)) + MemOpKey key = getMemOpKey(MI, MemOpNo); + auto insns = LEAs.find(key); + + // Do not call chooseBestLEA if there was no matching LEA + if (insns == LEAs.end()) + continue; + + if (!chooseBestLEA(insns->second, MI, DefMI, AddrDispShift, Dist)) continue; // If LEA occurs before current instruction, we can freely replace