mirror of
https://github.com/kmc7468/cs420.git
synced 2025-12-16 07:28:52 +00:00
Update skeleton
This commit is contained in:
@@ -3,7 +3,7 @@ use crate::opt::FunctionPass;
|
||||
use crate::*;
|
||||
|
||||
pub type SimplifyCfg =
|
||||
FunctionPass<Repeat<(SimplifyCfgConstProp, (SimplifyCfgReach, SimplifyCfgMerge))>>;
|
||||
FunctionPass<Repeat<(SimplifyCfgConstProp, (SimplifyCfgReach, (SimplifyCfgMerge, SimplifyCfgEmpty)))>>;
|
||||
|
||||
/// Simplifies block exits by propagating constants.
|
||||
#[derive(Default)]
|
||||
@@ -17,6 +17,10 @@ pub struct SimplifyCfgReach {}
|
||||
#[derive(Default)]
|
||||
pub struct SimplifyCfgMerge {}
|
||||
|
||||
/// Removes empty blocks
|
||||
#[derive(Default)]
|
||||
pub struct SimplifyCfgEmpty {}
|
||||
|
||||
impl Optimize<FunctionDefinition> for SimplifyCfgConstProp {
|
||||
fn optimize(&mut self, _code: &mut FunctionDefinition) -> bool {
|
||||
todo!("homework 3")
|
||||
@@ -34,3 +38,9 @@ impl Optimize<FunctionDefinition> for SimplifyCfgMerge {
|
||||
todo!("homework 3")
|
||||
}
|
||||
}
|
||||
|
||||
impl Optimize<FunctionDefinition> for SimplifyCfgEmpty {
|
||||
fn optimize(&mut self, _code: &mut FunctionDefinition) -> bool {
|
||||
todo!("homework 3")
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user