Skip to content

Commit 62f5636

Browse files
committed
[RISCV] Don't set KILL flag on X0 in RISCVInstrInfo::movImm.
Extracted from #67159.
1 parent d034c18 commit 62f5636

File tree

2 files changed

+7
-7
lines changed

2 files changed

+7
-7
lines changed

llvm/lib/Target/RISCV/RISCVInstrInfo.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -756,19 +756,19 @@ void RISCVInstrInfo::movImm(MachineBasicBlock &MBB,
756756
break;
757757
case RISCVMatInt::RegX0:
758758
BuildMI(MBB, MBBI, DL, get(Inst.getOpcode()), DstReg)
759-
.addReg(SrcReg, RegState::Kill)
759+
.addReg(SrcReg, getKillRegState(SrcReg != RISCV::X0))
760760
.addReg(RISCV::X0)
761761
.setMIFlag(Flag);
762762
break;
763763
case RISCVMatInt::RegReg:
764764
BuildMI(MBB, MBBI, DL, get(Inst.getOpcode()), DstReg)
765-
.addReg(SrcReg, RegState::Kill)
766-
.addReg(SrcReg, RegState::Kill)
765+
.addReg(SrcReg, getKillRegState(SrcReg != RISCV::X0))
766+
.addReg(SrcReg, getKillRegState(SrcReg != RISCV::X0))
767767
.setMIFlag(Flag);
768768
break;
769769
case RISCVMatInt::RegImm:
770770
BuildMI(MBB, MBBI, DL, get(Inst.getOpcode()), DstReg)
771-
.addReg(SrcReg, RegState::Kill)
771+
.addReg(SrcReg, getKillRegState(SrcReg != RISCV::X0))
772772
.addImm(Inst.getImm())
773773
.setMIFlag(Flag);
774774
break;

llvm/test/CodeGen/RISCV/rvv/emergency-slot.mir

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,14 +83,14 @@ body: |
8383
; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa $x8, 0
8484
; CHECK-NEXT: $x2 = frame-setup ADDI $x2, -272
8585
; CHECK-NEXT: $x10 = frame-setup PseudoReadVLENB
86-
; CHECK-NEXT: $x11 = frame-setup ADDI killed $x0, 52
86+
; CHECK-NEXT: $x11 = frame-setup ADDI $x0, 52
8787
; CHECK-NEXT: $x10 = frame-setup MUL killed $x10, killed $x11
8888
; CHECK-NEXT: $x2 = frame-setup SUB $x2, killed $x10
8989
; CHECK-NEXT: $x2 = frame-setup ANDI $x2, -128
9090
; CHECK-NEXT: dead renamable $x15 = PseudoVSETIVLI 1, 72 /* e16, m1, ta, mu */, implicit-def $vl, implicit-def $vtype
9191
; CHECK-NEXT: renamable $v25 = PseudoVMV_V_X_M1 undef $v25, killed renamable $x12, $noreg, 4 /* e16 */, 0 /* tu, mu */, implicit $vl, implicit $vtype
9292
; CHECK-NEXT: $x10 = PseudoReadVLENB
93-
; CHECK-NEXT: $x11 = ADDI killed $x0, 50
93+
; CHECK-NEXT: $x11 = ADDI $x0, 50
9494
; CHECK-NEXT: $x10 = MUL killed $x10, killed $x11
9595
; CHECK-NEXT: $x10 = ADD $x2, killed $x10
9696
; CHECK-NEXT: $x10 = ADDI killed $x10, 2047
@@ -130,7 +130,7 @@ body: |
130130
; CHECK-NEXT: SD killed $x10, $x2, 8 :: (store (s64) into %stack.15)
131131
; CHECK-NEXT: $x10 = PseudoReadVLENB
132132
; CHECK-NEXT: SD killed $x12, $x2, 0 :: (store (s64) into %stack.16)
133-
; CHECK-NEXT: $x12 = ADDI killed $x0, 50
133+
; CHECK-NEXT: $x12 = ADDI $x0, 50
134134
; CHECK-NEXT: $x10 = MUL killed $x10, killed $x12
135135
; CHECK-NEXT: $x12 = LD $x2, 0 :: (load (s64) from %stack.16)
136136
; CHECK-NEXT: $x10 = ADD $x2, killed $x10

0 commit comments

Comments
 (0)