Skip to main content

RegisterAllocator

Trait RegisterAllocator 

Source
pub trait RegisterAllocator {
    // Required methods
    fn allocate_register(&mut self, var_name: &str) -> Result<String>;
    fn free_register(&mut self, register: &str);
    fn get_available_registers(&self) -> Vec<String>;
    fn spill_register(&mut self, register: &str) -> Result<String>;
    fn save_register_state(&mut self);
    fn restore_register_state(&mut self);
}
Expand description

Register allocation trait

Required Methods§

Source

fn allocate_register(&mut self, var_name: &str) -> Result<String>

Allocate a register for a variable

Source

fn free_register(&mut self, register: &str)

Free a register

Source

fn get_available_registers(&self) -> Vec<String>

Get available registers

Source

fn spill_register(&mut self, register: &str) -> Result<String>

Spill a register to memory

Source

fn save_register_state(&mut self)

Save register state

Source

fn restore_register_state(&mut self)

Restore register state

Implementors§