Skip to main content

peephole_fuse_load_imm_memory

Function peephole_fuse_load_imm_memory 

Source
pub fn peephole_fuse_load_imm_memory(
    code: &mut [u8],
    bitmask: &mut [u8],
    jump_table: &[u32],
) -> usize
Expand description

Peephole pass: fuse load_imm + indirect memory op into direct memory op.

When load_imm rd, K is immediately followed by load_ind_X dest, rd, offset or store_ind_X [rd + offset], val, and K + offset fits in i32, the pair is replaced by the direct load_X dest, K+offset or store_X [K+offset], val. This eliminates the intermediate address register load.