[llvm] 62f5636 - [RISCV] Don't set KILL flag on X0 in RISCVInstrInfo::movImm.
Craig Topper via llvm-commits
llvm-commits at lists.llvm.org
Mon Sep 25 13:40:28 PDT 2023
Author: Craig Topper
Date: 2023-09-25T13:40:08-07:00
New Revision: 62f5636838ac80ebe8db9c31cdf9c5566db8f0c9
URL: https://github.com/llvm/llvm-project/commit/62f5636838ac80ebe8db9c31cdf9c5566db8f0c9
DIFF: https://github.com/llvm/llvm-project/commit/62f5636838ac80ebe8db9c31cdf9c5566db8f0c9.diff
LOG: [RISCV] Don't set KILL flag on X0 in RISCVInstrInfo::movImm.
Extracted from #67159.
Added:
Modified:
llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
llvm/test/CodeGen/RISCV/rvv/emergency-slot.mir
Removed:
################################################################################
diff --git a/llvm/lib/Target/RISCV/RISCVInstrInfo.cpp b/llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
index 816ceaf95607e71..6ee5e2d4c584049 100644
--- a/llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
+++ b/llvm/lib/Target/RISCV/RISCVInstrInfo.cpp
@@ -756,19 +756,19 @@ void RISCVInstrInfo::movImm(MachineBasicBlock &MBB,
break;
case RISCVMatInt::RegX0:
BuildMI(MBB, MBBI, DL, get(Inst.getOpcode()), DstReg)
- .addReg(SrcReg, RegState::Kill)
+ .addReg(SrcReg, getKillRegState(SrcReg != RISCV::X0))
.addReg(RISCV::X0)
.setMIFlag(Flag);
break;
case RISCVMatInt::RegReg:
BuildMI(MBB, MBBI, DL, get(Inst.getOpcode()), DstReg)
- .addReg(SrcReg, RegState::Kill)
- .addReg(SrcReg, RegState::Kill)
+ .addReg(SrcReg, getKillRegState(SrcReg != RISCV::X0))
+ .addReg(SrcReg, getKillRegState(SrcReg != RISCV::X0))
.setMIFlag(Flag);
break;
case RISCVMatInt::RegImm:
BuildMI(MBB, MBBI, DL, get(Inst.getOpcode()), DstReg)
- .addReg(SrcReg, RegState::Kill)
+ .addReg(SrcReg, getKillRegState(SrcReg != RISCV::X0))
.addImm(Inst.getImm())
.setMIFlag(Flag);
break;
diff --git a/llvm/test/CodeGen/RISCV/rvv/emergency-slot.mir b/llvm/test/CodeGen/RISCV/rvv/emergency-slot.mir
index 5294214ec6630aa..8fb4be6b49ed648 100644
--- a/llvm/test/CodeGen/RISCV/rvv/emergency-slot.mir
+++ b/llvm/test/CodeGen/RISCV/rvv/emergency-slot.mir
@@ -83,14 +83,14 @@ body: |
; CHECK-NEXT: frame-setup CFI_INSTRUCTION def_cfa $x8, 0
; CHECK-NEXT: $x2 = frame-setup ADDI $x2, -272
; CHECK-NEXT: $x10 = frame-setup PseudoReadVLENB
- ; CHECK-NEXT: $x11 = frame-setup ADDI killed $x0, 52
+ ; CHECK-NEXT: $x11 = frame-setup ADDI $x0, 52
; CHECK-NEXT: $x10 = frame-setup MUL killed $x10, killed $x11
; CHECK-NEXT: $x2 = frame-setup SUB $x2, killed $x10
; CHECK-NEXT: $x2 = frame-setup ANDI $x2, -128
; CHECK-NEXT: dead renamable $x15 = PseudoVSETIVLI 1, 72 /* e16, m1, ta, mu */, implicit-def $vl, implicit-def $vtype
; CHECK-NEXT: renamable $v25 = PseudoVMV_V_X_M1 undef $v25, killed renamable $x12, $noreg, 4 /* e16 */, 0 /* tu, mu */, implicit $vl, implicit $vtype
; CHECK-NEXT: $x10 = PseudoReadVLENB
- ; CHECK-NEXT: $x11 = ADDI killed $x0, 50
+ ; CHECK-NEXT: $x11 = ADDI $x0, 50
; CHECK-NEXT: $x10 = MUL killed $x10, killed $x11
; CHECK-NEXT: $x10 = ADD $x2, killed $x10
; CHECK-NEXT: $x10 = ADDI killed $x10, 2047
@@ -130,7 +130,7 @@ body: |
; CHECK-NEXT: SD killed $x10, $x2, 8 :: (store (s64) into %stack.15)
; CHECK-NEXT: $x10 = PseudoReadVLENB
; CHECK-NEXT: SD killed $x12, $x2, 0 :: (store (s64) into %stack.16)
- ; CHECK-NEXT: $x12 = ADDI killed $x0, 50
+ ; CHECK-NEXT: $x12 = ADDI $x0, 50
; CHECK-NEXT: $x10 = MUL killed $x10, killed $x12
; CHECK-NEXT: $x12 = LD $x2, 0 :: (load (s64) from %stack.16)
; CHECK-NEXT: $x10 = ADD $x2, killed $x10
More information about the llvm-commits
mailing list