Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions llvm/lib/Target/RISCV/RISCVFoldMemOffset.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -274,6 +274,7 @@ bool RISCVFoldMemOffset::runOnMachineFunction(MachineFunction &MF) {
MemMI->getOperand(2).setImm(NewOffset);

MRI.replaceRegWith(MI.getOperand(0).getReg(), MI.getOperand(1).getReg());
MRI.clearKillFlags(MI.getOperand(1).getReg());
MI.eraseFromParent();
}
}
Expand Down
43 changes: 43 additions & 0 deletions llvm/test/CodeGen/RISCV/fold-mem-offset.mir
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5
# RUN: llc %s -mtriple=riscv32 -run-pass=riscv-fold-mem-offset -verify-machineinstrs | FileCheck %s

---
name: crash
tracksRegLiveness: true
noPhis: false
isSSA: true
noVRegs: false
hasFakeUses: false
body: |
bb.0:
liveins: $x10, $x11

; CHECK-LABEL: name: crash
; CHECK: liveins: $x10, $x11
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x11
; CHECK-NEXT: [[COPY1:%[0-9]+]]:gpr = COPY $x10
; CHECK-NEXT: [[SLLI:%[0-9]+]]:gpr = SLLI [[COPY]], 3
; CHECK-NEXT: [[ADD:%[0-9]+]]:gpr = ADD killed [[SLLI]], [[COPY1]]
; CHECK-NEXT: [[LUI:%[0-9]+]]:gpr = LUI 23
; CHECK-NEXT: [[ADD1:%[0-9]+]]:gpr = ADD [[ADD]], [[LUI]]
; CHECK-NEXT: [[ADD2:%[0-9]+]]:gpr = ADD [[ADD]], [[LUI]]
; CHECK-NEXT: [[LW:%[0-9]+]]:gpr = LW killed [[ADD2]], 1792
; CHECK-NEXT: [[LW1:%[0-9]+]]:gpr = LW killed [[ADD1]], 1796
; CHECK-NEXT: $x10 = COPY [[LW]]
; CHECK-NEXT: $x11 = COPY [[LW1]]
; CHECK-NEXT: PseudoRET implicit $x10, implicit $x11
%1:gpr = COPY $x11
%0:gpr = COPY $x10
%3:gpr = SLLI %1, 3
%4:gpr = ADD killed %3, %0
%5:gpr = LUI 23
%6:gpr = ADDI %5, 1792
%7:gpr = ADD %4, killed %6
%8:gpr = ADD %4, %5
%9:gpr = LW killed %8, 1792
%10:gpr = LW killed %7, 4
$x10 = COPY %9
$x11 = COPY %10
PseudoRET implicit $x10, implicit $x11
...
Loading