[llvm] X86: Use LiveRegUnits in findDeadCallerSavedReg (PR #156817)
Phoebe Wang via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 8 20:04:55 PDT 2025
================
@@ -1025,20 +1023,20 @@ unsigned X86RegisterInfo::findDeadCallerSavedReg(
case X86::TCRETURNmi64:
case X86::EH_RETURN:
case X86::EH_RETURN64: {
- SmallSet<uint16_t, 8> Uses;
- for (MachineOperand &MO : MBBI->operands()) {
- if (!MO.isReg() || MO.isDef())
- continue;
- Register Reg = MO.getReg();
- if (!Reg)
- continue;
- for (MCRegAliasIterator AI(Reg, this, true); AI.isValid(); ++AI)
- Uses.insert(*AI);
+ LiveRegUnits LRU(*this);
+ LRU.addLiveOuts(MBB);
+ LRU.stepBackward(*MBBI);
+
+ // FIXME: Why do we need to special case this register? Is it missing from
+ // return implicit uses?
+ LRU.removeReg(X86::RIP);
----------------
phoebewang wrote:
https://github.com/llvm/llvm-project/blob/main/llvm/lib/Target/X86/X86RegisterInfo.td#L685
https://github.com/llvm/llvm-project/pull/156817
More information about the llvm-commits
mailing list