[llvm] [LiveRegUnits] Avoid accidentally O(n^2) loop in addCalleeSavedRegs (NFC) (PR #214740)

Benjamin Maxwell via llvm-commits llvm-commits at lists.llvm.org
Fri Aug 7 07:10:25 PDT 2026


================
@@ -105,17 +105,8 @@ static void addBlockLiveOuts(LiveRegUnits &LiveUnits,
 static void addCalleeSavedRegs(LiveRegUnits &LiveUnits,
                                const MachineFunction &MF) {
   const MachineRegisterInfo &MRI = MF.getRegInfo();
-  const MachineFrameInfo &MFI = MF.getFrameInfo();
-  for (const MCPhysReg *CSR = MRI.getCalleeSavedRegs(); CSR && *CSR; ++CSR) {
-    const unsigned N = *CSR;
-
-    const auto &CSI = MFI.getCalleeSavedInfo();
-    auto Info =
-        llvm::find_if(CSI, [N](auto Info) { return Info.getReg() == N; });
-    // If we have no info for this callee-saved register, assume it is liveout
-    if (Info == CSI.end() || Info->isRestored())
----------------
MacDue wrote:

Note: This was only relevant for `addLiveOuts` all other users of `addCalleeSavedRegs` remove all registers from CalleeSavedInfo. 

https://github.com/llvm/llvm-project/pull/214740


More information about the llvm-commits mailing list