Skip to content

Commit 11e94b5

Browse files
toppercpuja2196
authored andcommitted
[RISCV] Add correct MachinePointerInfo when putting arguments on the stack. (#110140)
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.
1 parent 44765a3 commit 11e94b5

File tree

2 files changed

+6
-4
lines changed

2 files changed

+6
-4
lines changed

llvm/lib/Target/RISCV/RISCVISelLowering.cpp

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19640,8 +19640,9 @@ SDValue RISCVTargetLowering::LowerCall(CallLoweringInfo &CLI,
1964019640
DAG.getNode(ISD::ADD, DL, PtrVT, StackPtr,
1964119641
DAG.getIntPtrConstant(HiVA.getLocMemOffset(), DL));
1964219642
// Emit the store.
19643-
MemOpChains.push_back(
19644-
DAG.getStore(Chain, DL, Hi, Address, MachinePointerInfo()));
19643+
MemOpChains.push_back(DAG.getStore(
19644+
Chain, DL, Hi, Address,
19645+
MachinePointerInfo::getStack(MF, HiVA.getLocMemOffset())));
1964519646
} else {
1964619647
// Second half of f64 is passed in another GPR.
1964719648
Register RegHigh = HiVA.getLocReg();
@@ -19723,7 +19724,8 @@ SDValue RISCVTargetLowering::LowerCall(CallLoweringInfo &CLI,
1972319724

1972419725
// Emit the store.
1972519726
MemOpChains.push_back(
19726-
DAG.getStore(Chain, DL, ArgValue, Address, MachinePointerInfo()));
19727+
DAG.getStore(Chain, DL, ArgValue, Address,
19728+
MachinePointerInfo::getStack(MF, VA.getLocMemOffset())));
1972719729
}
1972819730
}
1972919731

llvm/test/CodeGen/RISCV/pr97304.ll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ define i32 @_ZNK2cv12LMSolverImpl3runERKNS_17_InputOutputArrayE(i1 %cmp436) {
1717
; CHECK-NEXT: ADJCALLSTACKDOWN 8, 0, implicit-def dead $x2, implicit $x2
1818
; CHECK-NEXT: [[COPY2:%[0-9]+]]:gpr = COPY $x2
1919
; CHECK-NEXT: [[COPY3:%[0-9]+]]:gprjalr = COPY $x0
20-
; CHECK-NEXT: SD [[COPY3]], [[COPY2]], 0 :: (store (s64))
20+
; CHECK-NEXT: SD [[COPY3]], [[COPY2]], 0 :: (store (s64) into stack)
2121
; CHECK-NEXT: [[ADDI:%[0-9]+]]:gpr = ADDI $x0, 1
2222
; CHECK-NEXT: [[ADDI1:%[0-9]+]]:gpr = ADDI $x0, 32
2323
; CHECK-NEXT: BNE [[ANDI]], $x0, %bb.3

0 commit comments

Comments
 (0)