From 53145c4020d237d2572b4109e0d425863dc34f9b Mon Sep 17 00:00:00 2001 From: Richard-Qin-X Date: Mon, 17 Aug 2026 02:56:45 +0800 Subject: [RISCV][GlobalISel] Generate implicit-def selection --- backend/lib/Target/RISCV/GISel/RISCVInstructionSelector.cpp | 3 --- backend/lib/Target/RISCV/RISCVGISelInteger.rccdesc | 10 ++++++++++ 2 files changed, 10 insertions(+), 3 deletions(-) (limited to 'backend/lib/Target') diff --git a/backend/lib/Target/RISCV/GISel/RISCVInstructionSelector.cpp b/backend/lib/Target/RISCV/GISel/RISCVInstructionSelector.cpp index bd46144..cde2c8d 100644 --- a/backend/lib/Target/RISCV/GISel/RISCVInstructionSelector.cpp +++ b/backend/lib/Target/RISCV/GISel/RISCVInstructionSelector.cpp @@ -405,7 +405,6 @@ public: case GenericOpcode::G_DEBUGTRAP: case GenericOpcode::G_UBSANTRAP: case GenericOpcode::G_PHI: - case GenericOpcode::G_IMPLICIT_DEF: return {}; default: return makeUnexpected(ErrorCode::Unsupported, @@ -493,8 +492,6 @@ public: return selectTrap(Instruction); case GenericOpcode::G_PHI: return Instruction.setOpcode(opcode(GenericOpcode::PHI)); - case GenericOpcode::G_IMPLICIT_DEF: - return Instruction.setOpcode(opcode(GenericOpcode::IMPLICIT_DEF)); case GenericOpcode::COPY: case GenericOpcode::IMPLICIT_DEF: case GenericOpcode::PHI: diff --git a/backend/lib/Target/RISCV/RISCVGISelInteger.rccdesc b/backend/lib/Target/RISCV/RISCVGISelInteger.rccdesc index 1667f66..f40e5d4 100644 --- a/backend/lib/Target/RISCV/RISCVGISelInteger.rccdesc +++ b/backend/lib/Target/RISCV/RISCVGISelInteger.rccdesc @@ -1,4 +1,14 @@ selection_rules: + - + id: select_g_implicit_def + priority: 100 + match: + opcode: G_IMPLICIT_DEF + apply: + instructions: + - opcode: IMPLICIT_DEF + root: true + operands: [{ operand: 0 }] - id: select_g_sext_s64_s32 priority: 500 -- cgit v1.2.3