aboutsummaryrefslogtreecommitdiff
path: root/backend/lib/Target/RISCV/RISCV.rccdesc
diff options
context:
space:
mode:
authorRichard-Qin-X <richard.qin.001@gmail.com>2026-08-09 04:40:17 +0800
committerRichard-Qin-X <richard.qin.001@gmail.com>2026-08-09 04:40:17 +0800
commite5fdceb9b869f010a2a75638fd38aaf1867f3008 (patch)
tree023d3e18960956f5ce369739c68aaa2a3e8400e7 /backend/lib/Target/RISCV/RISCV.rccdesc
parent6c7cecc81a4c7e06e26027e21edd2cfd95a37a0b (diff)
downloadrcc-project-e5fdceb9b869f010a2a75638fd38aaf1867f3008.tar.gz
rcc-project-e5fdceb9b869f010a2a75638fd38aaf1867f3008.tar.xz
[CodeGen] Complete register allocation infrastructure
Diffstat (limited to 'backend/lib/Target/RISCV/RISCV.rccdesc')
-rw-r--r--backend/lib/Target/RISCV/RISCV.rccdesc22
1 files changed, 11 insertions, 11 deletions
diff --git a/backend/lib/Target/RISCV/RISCV.rccdesc b/backend/lib/Target/RISCV/RISCV.rccdesc
index a8dfdde..e248bc7 100644
--- a/backend/lib/Target/RISCV/RISCV.rccdesc
+++ b/backend/lib/Target/RISCV/RISCV.rccdesc
@@ -375,7 +375,7 @@ instructions:
- { kinds: [register], role: def, register_class: GPR, register_bank: GPR, name: RD }
- { kinds: [immediate], immediate_predicate: SIMM20, name: IMM }
num_explicit_defs: 1
- flags: [produces_code]
+ flags: [produces_code, rematerializable]
scheduling_class: ALU
encoding_category: U
assembly_format: RD_IMM
@@ -402,7 +402,7 @@ instructions:
- { kinds: [register], role: use, register_class: GPR, register_bank: GPR, name: RS1 }
- { kinds: [immediate], immediate_predicate: SIMM12, name: IMM }
num_explicit_defs: 1
- flags: [produces_code]
+ flags: [produces_code, rematerializable]
scheduling_class: ALU
encoding_category: I
assembly_format: RD_RS1_IMM
@@ -444,7 +444,7 @@ instructions:
- { kinds: [register], role: use, register_class: GPR, register_bank: GPR, name: RS1 }
- { kinds: [immediate], immediate_predicate: SIMM12, name: IMM }
num_explicit_defs: 1
- flags: [produces_code]
+ flags: [produces_code, rematerializable]
scheduling_class: ALU
encoding_category: I
assembly_format: RD_RS1_IMM
@@ -709,7 +709,7 @@ instructions:
assembly_mnemonic: lw
operands:
- { kinds: [register], role: def, register_class: GPR, register_bank: GPR, memory_role: value, name: RD }
- - { kinds: [register], role: use, register_class: GPR, register_bank: GPR, memory_role: address, name: RS1 }
+ - { kinds: [register, frame_index], role: use, register_class: GPR, register_bank: GPR, memory_role: address, name: RS1 }
- { kinds: [immediate], immediate_predicate: SIMM12, name: IMM }
num_explicit_defs: 1
flags: [may_load, produces_code]
@@ -799,7 +799,7 @@ instructions:
assembly_mnemonic: sw
operands:
- { kinds: [register], role: use, register_class: GPR, register_bank: GPR, memory_role: value, name: RS2 }
- - { kinds: [register], role: use, register_class: GPR, register_bank: GPR, memory_role: address, name: RS1 }
+ - { kinds: [register, frame_index], role: use, register_class: GPR, register_bank: GPR, memory_role: address, name: RS1 }
- { kinds: [immediate], immediate_predicate: SIMM12, name: IMM }
num_explicit_defs: 0
flags: [may_store, produces_code]
@@ -1202,7 +1202,7 @@ instructions:
assembly_mnemonic: ld
operands:
- { kinds: [register], role: def, register_class: GPR, register_bank: GPR, memory_role: value, name: RD }
- - { kinds: [register], role: use, register_class: GPR, register_bank: GPR, memory_role: address, name: RS1 }
+ - { kinds: [register, frame_index], role: use, register_class: GPR, register_bank: GPR, memory_role: address, name: RS1 }
- { kinds: [immediate], immediate_predicate: SIMM12, name: IMM }
num_explicit_defs: 1
flags: [may_load, produces_code]
@@ -1217,7 +1217,7 @@ instructions:
assembly_mnemonic: sd
operands:
- { kinds: [register], role: use, register_class: GPR, register_bank: GPR, memory_role: value, name: RS2 }
- - { kinds: [register], role: use, register_class: GPR, register_bank: GPR, memory_role: address, name: RS1 }
+ - { kinds: [register, frame_index], role: use, register_class: GPR, register_bank: GPR, memory_role: address, name: RS1 }
- { kinds: [immediate], immediate_predicate: SIMM12, name: IMM }
num_explicit_defs: 0
flags: [may_store, produces_code]
@@ -1423,7 +1423,7 @@ instructions:
assembly_mnemonic: flw
operands:
- { kinds: [register], role: def, register_class: FPR32, register_bank: FPR, memory_role: value, name: FRD }
- - { kinds: [register], role: use, register_class: GPR, register_bank: GPR, memory_role: address, name: RS1 }
+ - { kinds: [register, frame_index], role: use, register_class: GPR, register_bank: GPR, memory_role: address, name: RS1 }
- { kinds: [immediate], immediate_predicate: SIMM12, name: IMM }
num_explicit_defs: 1
flags: [may_load, produces_code]
@@ -1438,7 +1438,7 @@ instructions:
assembly_mnemonic: fsw
operands:
- { kinds: [register], role: use, register_class: FPR32, register_bank: FPR, memory_role: value, name: FRS2 }
- - { kinds: [register], role: use, register_class: GPR, register_bank: GPR, memory_role: address, name: RS1 }
+ - { kinds: [register, frame_index], role: use, register_class: GPR, register_bank: GPR, memory_role: address, name: RS1 }
- { kinds: [immediate], immediate_predicate: SIMM12, name: IMM }
num_explicit_defs: 0
flags: [may_store, produces_code]
@@ -1854,7 +1854,7 @@ instructions:
assembly_mnemonic: fld
operands:
- { kinds: [register], role: def, register_class: FPR64, register_bank: FPR, memory_role: value, name: FRD }
- - { kinds: [register], role: use, register_class: GPR, register_bank: GPR, memory_role: address, name: RS1 }
+ - { kinds: [register, frame_index], role: use, register_class: GPR, register_bank: GPR, memory_role: address, name: RS1 }
- { kinds: [immediate], immediate_predicate: SIMM12, name: IMM }
num_explicit_defs: 1
flags: [may_load, produces_code]
@@ -1869,7 +1869,7 @@ instructions:
assembly_mnemonic: fsd
operands:
- { kinds: [register], role: use, register_class: FPR64, register_bank: FPR, memory_role: value, name: FRS2 }
- - { kinds: [register], role: use, register_class: GPR, register_bank: GPR, memory_role: address, name: RS1 }
+ - { kinds: [register, frame_index], role: use, register_class: GPR, register_bank: GPR, memory_role: address, name: RS1 }
- { kinds: [immediate], immediate_predicate: SIMM12, name: IMM }
num_explicit_defs: 0
flags: [may_store, produces_code]