From 901f81e8b2a8844b252697b8bd3c346e9865aeff Mon Sep 17 00:00:00 2001 From: Brandon Wu Date: Mon, 13 Oct 2025 08:56:14 -0700 Subject: [PATCH 1/2] [llvm][RISCV] Correct the order of statement in insertVSETMTK We need to set register to noreg before shrinking interval --- llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp b/llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp index 278cf6dc1d786..02162834a9844 100644 --- a/llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp +++ b/llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp @@ -1945,9 +1945,12 @@ bool RISCVInsertVSETVLI::insertVSETMTK(MachineBasicBlock &MBB, .addImm(Log2_32(CurrInfo.getTWiden()) + 1); Changed = true; + Register Reg = Op.getReg(); + Op.setReg(RISCV::NoRegister); + Op.setIsKill(false); if (LIS) { LIS->InsertMachineInstrInMaps(*TmpMI); - LiveInterval &LI = LIS->getInterval(Op.getReg()); + LiveInterval &LI = LIS->getInterval(Reg); // Erase the AVL operand from the instruction. LIS->shrinkToUses(&LI); @@ -1955,9 +1958,6 @@ bool RISCVInsertVSETVLI::insertVSETMTK(MachineBasicBlock &MBB, // SmallVector SplitLIs; // LIS->splitSeparateComponents(LI, SplitLIs); } - - Op.setReg(RISCV::NoRegister); - Op.setIsKill(false); } return Changed; } From 0cd3a846fd0bc7120a2f2232fb92ecd4f6c83c68 Mon Sep 17 00:00:00 2001 From: Brandon Wu Date: Mon, 13 Oct 2025 09:45:42 -0700 Subject: [PATCH 2/2] fixup! [llvm][RISCV] Correct the order of statement in insertVSETMTK --- llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp b/llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp index 02162834a9844..9ed3b97d1dc79 100644 --- a/llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp +++ b/llvm/lib/Target/RISCV/RISCVInsertVSETVLI.cpp @@ -1946,7 +1946,7 @@ bool RISCVInsertVSETVLI::insertVSETMTK(MachineBasicBlock &MBB, Changed = true; Register Reg = Op.getReg(); - Op.setReg(RISCV::NoRegister); + Op.setReg(Register()); Op.setIsKill(false); if (LIS) { LIS->InsertMachineInstrInMaps(*TmpMI);