数据流优化概述
a = 1
b = a + c a = 1
b = 1 + c if (b) {
x + y; -> tmp = x + y;
} else {
x + y; -> tmp = x + y;
}
z = x + y; -> z = tmp; c = a + b
d = b + c
e = c + d
...
z = x + yLast updated
Was this helpful?
a = 1
b = a + c a = 1
b = 1 + c if (b) {
x + y; -> tmp = x + y;
} else {
x + y; -> tmp = x + y;
}
z = x + y; -> z = tmp; c = a + b
d = b + c
e = c + d
...
z = x + yLast updated
Was this helpful?
Was this helpful?
pub fn optimize(&mut self) {
crate::common_expr::work(self);
crate::copy_prop::work(self);
crate::const_prop::work(self);
crate::aliveness::work(self);
}
pub fn optimizen(&mut self, n: u32) {
for _ in 0..n { self.optimize(); }
}