celox-sir-opt 0.4.4

Backend-independent SIR optimization policy and passes for Celox
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use crate::PassOptions;
use crate::ir::{ExecutionUnit, RegionedAbsoluteAddr};

use super::pass_manager::ExecutionUnitPass;
use super::shared::hoist_common_branch_loads;

pub(in crate::optimizer) struct HoistCommonBranchLoadsPass;

impl ExecutionUnitPass for HoistCommonBranchLoadsPass {
    fn name(&self) -> &'static str {
        "hoist_common_branch_loads"
    }

    fn run(&self, eu: &mut ExecutionUnit<RegionedAbsoluteAddr>, _options: &PassOptions) {
        hoist_common_branch_loads(eu);
    }
}