[llvm] DAG: Set MachinePointerInfo for stack when expanding divrem libcall (PR #170537)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 3 11:13:59 PST 2025


https://github.com/arsenm created https://github.com/llvm/llvm-project/pull/170537

None

>From a47b379248490816bd6223c67ba078fbdbad8809 Mon Sep 17 00:00:00 2001
From: Matt Arsenault <Matthew.Arsenault at amd.com>
Date: Wed, 3 Dec 2025 19:39:58 +0100
Subject: [PATCH] DAG: Set MachinePointerInfo for stack when expanding divrem
 libcall

---
 llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp b/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
index 8336e1d1f4134..ff5132d44b898 100644
--- a/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
+++ b/llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
@@ -2407,8 +2407,11 @@ SelectionDAGLegalize::ExpandDivRemLibCall(SDNode *Node,
   std::pair<SDValue, SDValue> CallInfo = TLI.LowerCallTo(CLI);
 
   // Remainder is loaded back from the stack frame.
-  SDValue Rem =
-      DAG.getLoad(RetVT, dl, CallInfo.second, FIPtr, MachinePointerInfo());
+  int FI = cast<FrameIndexSDNode>(FIPtr)->getIndex();
+  MachinePointerInfo PtrInfo =
+      MachinePointerInfo::getFixedStack(DAG.getMachineFunction(), FI);
+
+  SDValue Rem = DAG.getLoad(RetVT, dl, CallInfo.second, FIPtr, PtrInfo);
   Results.push_back(CallInfo.first);
   Results.push_back(Rem);
 }



More information about the llvm-commits mailing list