[llvm] [RISCV] Add correct MachinePointerInfo when putting arguments on the stack. (PR #110140)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Sep 26 09:11:29 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-backend-risc-v
Author: Craig Topper (topperc)
<details>
<summary>Changes</summary>
Previously we used an empty MachinePointerInfo. I checked a few other targets like X86, ARM, and AArch64 and they all appear to use correct MachinePointerInfo.
---
Full diff: https://github.com/llvm/llvm-project/pull/110140.diff
2 Files Affected:
- (modified) llvm/lib/Target/RISCV/RISCVISelLowering.cpp (+5-3)
- (modified) llvm/test/CodeGen/RISCV/pr97304.ll (+1-1)
``````````diff
diff --git a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp
index 7a19a879ca3420..8ef26706331e53 100644
--- a/llvm/lib/Target/RISCV/RISCVISelLowering.cpp
+++ b/llvm/lib/Target/RISCV/RISCVISelLowering.cpp
@@ -19629,8 +19629,9 @@ SDValue RISCVTargetLowering::LowerCall(CallLoweringInfo &CLI,
DAG.getNode(ISD::ADD, DL, PtrVT, StackPtr,
DAG.getIntPtrConstant(HiVA.getLocMemOffset(), DL));
// Emit the store.
- MemOpChains.push_back(
- DAG.getStore(Chain, DL, Hi, Address, MachinePointerInfo()));
+ MemOpChains.push_back(DAG.getStore(
+ Chain, DL, Hi, Address,
+ MachinePointerInfo::getStack(MF, HiVA.getLocMemOffset())));
} else {
// Second half of f64 is passed in another GPR.
Register RegHigh = HiVA.getLocReg();
@@ -19712,7 +19713,8 @@ SDValue RISCVTargetLowering::LowerCall(CallLoweringInfo &CLI,
// Emit the store.
MemOpChains.push_back(
- DAG.getStore(Chain, DL, ArgValue, Address, MachinePointerInfo()));
+ DAG.getStore(Chain, DL, ArgValue, Address,
+ MachinePointerInfo::getStack(MF, VA.getLocMemOffset())));
}
}
diff --git a/llvm/test/CodeGen/RISCV/pr97304.ll b/llvm/test/CodeGen/RISCV/pr97304.ll
index 120a0e787384dd..694f6384b6855b 100644
--- a/llvm/test/CodeGen/RISCV/pr97304.ll
+++ b/llvm/test/CodeGen/RISCV/pr97304.ll
@@ -17,7 +17,7 @@ define i32 @_ZNK2cv12LMSolverImpl3runERKNS_17_InputOutputArrayE(i1 %cmp436) {
; CHECK-NEXT: ADJCALLSTACKDOWN 8, 0, implicit-def dead $x2, implicit $x2
; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr = COPY $x2
; CHECK-NEXT: [[COPY3:%[0-9]+]]:gprjalr = COPY $x0
- ; CHECK-NEXT: SD [[COPY3]], [[COPY2]], 0 :: (store (s64))
+ ; CHECK-NEXT: SD [[COPY3]], [[COPY2]], 0 :: (store (s64) into stack)
; CHECK-NEXT: [[ADDI:%[0-9]+]]:gpr = ADDI $x0, 1
; CHECK-NEXT: [[ADDI1:%[0-9]+]]:gpr = ADDI $x0, 32
; CHECK-NEXT: BNE [[ANDI]], $x0, %bb.3
``````````
</details>
https://github.com/llvm/llvm-project/pull/110140
More information about the llvm-commits
mailing list