cranelift: remove load_complex and store_complex (#3976)
This change removes all variants of `load*_complex` and `store*_complex` from Cranelift; this is a breaking change to the instructions exposed by CLIF. The complete list of instructions removed is: `load_complex`, `store_complex`, `uload8_complex`, `sload8_complex`, `istore8_complex`, `sload8_complex`, `uload16_complex`, `sload16_complex`, `istore16_complex`, `uload32_complex`, `sload32_complex`, `istore32_complex`, `uload8x8_complex`, `sload8x8_complex`, `sload16x4_complex`, `uload16x4_complex`, `uload32x2_complex`, `sload32x2_complex`. The rationale for this removal is that the Cranelift backend now has the ability to pattern-match multiple upstream additions in order to calculate the address to access. Previously, this was not possible so the `*_complex` instructions were needed. Over time, these instructions have fallen out of use in this repository, making the additional overhead of maintaining them a chore.
This commit is contained in:
@@ -28,7 +28,6 @@ pub(crate) struct Formats {
|
||||
pub(crate) int_select: Rc<InstructionFormat>,
|
||||
pub(crate) jump: Rc<InstructionFormat>,
|
||||
pub(crate) load: Rc<InstructionFormat>,
|
||||
pub(crate) load_complex: Rc<InstructionFormat>,
|
||||
pub(crate) load_no_offset: Rc<InstructionFormat>,
|
||||
pub(crate) multiary: Rc<InstructionFormat>,
|
||||
pub(crate) nullary: Rc<InstructionFormat>,
|
||||
@@ -36,7 +35,6 @@ pub(crate) struct Formats {
|
||||
pub(crate) stack_load: Rc<InstructionFormat>,
|
||||
pub(crate) stack_store: Rc<InstructionFormat>,
|
||||
pub(crate) store: Rc<InstructionFormat>,
|
||||
pub(crate) store_complex: Rc<InstructionFormat>,
|
||||
pub(crate) store_no_offset: Rc<InstructionFormat>,
|
||||
pub(crate) table_addr: Rc<InstructionFormat>,
|
||||
pub(crate) ternary: Rc<InstructionFormat>,
|
||||
@@ -203,12 +201,6 @@ impl Formats {
|
||||
.imm(&imm.offset32)
|
||||
.build(),
|
||||
|
||||
load_complex: Builder::new("LoadComplex")
|
||||
.imm(&imm.memflags)
|
||||
.varargs()
|
||||
.imm(&imm.offset32)
|
||||
.build(),
|
||||
|
||||
load_no_offset: Builder::new("LoadNoOffset")
|
||||
.imm(&imm.memflags)
|
||||
.value()
|
||||
@@ -221,13 +213,6 @@ impl Formats {
|
||||
.imm(&imm.offset32)
|
||||
.build(),
|
||||
|
||||
store_complex: Builder::new("StoreComplex")
|
||||
.imm(&imm.memflags)
|
||||
.value()
|
||||
.varargs()
|
||||
.imm(&imm.offset32)
|
||||
.build(),
|
||||
|
||||
store_no_offset: Builder::new("StoreNoOffset")
|
||||
.imm(&imm.memflags)
|
||||
.value()
|
||||
|
||||
Reference in New Issue
Block a user