[llvm] [MachineLICM] Recognize registers clobbered at EH landing pad entry (PR #122446)

Ulrich Weigand via llvm-commits llvm-commits at lists.llvm.org
Fri Apr 25 10:55:48 PDT 2025


================
@@ -639,6 +639,19 @@ void MachineLICMImpl::HoistRegionPostRA(MachineLoop *CurLoop,
     if (const uint32_t *Mask = BB->getBeginClobberMask(TRI))
       applyBitsNotInRegMaskToRegUnitsMask(*TRI, RUClobbers, Mask);
 
+    // EH landing pads clobber exception pointer/selector registers
+    if (BB->isEHPad()) {
+      const MachineFunction &MF = *BB->getParent();
+      const Constant *PersonalityFn = MF.getFunction().getPersonalityFn();
+      const TargetLowering &TLI = *MF.getSubtarget().getTargetLowering();
+      if (MCRegister Reg = TLI.getExceptionPointerRegister(PersonalityFn))
+        for (MCRegUnitIterator RUI(Reg, TRI); RUI.isValid(); ++RUI)
+          RUClobbers.set(*RUI);
----------------
uweigand wrote:

Done, thanks!

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


More information about the llvm-commits mailing list