aboutsummaryrefslogtreecommitdiff
path: root/backend/lib
diff options
context:
space:
mode:
authorRichard-Qin-X <richard.qin.001@gmail.com>2026-08-17 02:56:45 +0800
committerRichard-Qin-X <richard.qin.001@gmail.com>2026-08-17 02:56:45 +0800
commit53145c4020d237d2572b4109e0d425863dc34f9b (patch)
tree8f53b75dc3e3fd64bc6faec420620fcaf12b2233 /backend/lib
parent103299abab6922f450671baa76e34ad746ac4312 (diff)
downloadrcc-project-53145c4020d237d2572b4109e0d425863dc34f9b.tar.gz
rcc-project-53145c4020d237d2572b4109e0d425863dc34f9b.tar.xz
[RISCV][GlobalISel] Generate implicit-def selection
Diffstat (limited to 'backend/lib')
-rw-r--r--backend/lib/Target/RISCV/GISel/RISCVInstructionSelector.cpp3
-rw-r--r--backend/lib/Target/RISCV/RISCVGISelInteger.rccdesc10
2 files changed, 10 insertions, 3 deletions
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,5 +1,15 @@
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
match: