Index: lib/CodeGen/ExecutionDepsFix.cpp =================================================================== --- lib/CodeGen/ExecutionDepsFix.cpp +++ lib/CodeGen/ExecutionDepsFix.cpp @@ -510,11 +510,15 @@ unsigned MaxClearance = 0; unsigned MaxClearanceReg = OriginalReg; for (unsigned rx = 0; rx < OpRC->getNumRegs(); ++rx) { - unsigned Clearance = CurInstr - LiveRegs[rx].Def; + unsigned Reg = OpRC->getRegister(rx); + assert(AliasMap[Reg].size() == 1 && + "Reg is expected to be mapped to a single index"); + int RCrx = *regIndices(Reg).begin(); + unsigned Clearance = CurInstr - LiveRegs[RCrx].Def; if (Clearance <= MaxClearance) continue; MaxClearance = Clearance; - MaxClearanceReg = OpRC->getRegister(rx); + MaxClearanceReg = Reg; if (MaxClearance > Pref) break;