Cargo-fmt and cleanup.
This commit is contained in:
@@ -12,4 +12,7 @@ build = "build.rs"
|
||||
name = "cretonne"
|
||||
path = "lib.rs"
|
||||
|
||||
[dev-dependencies]
|
||||
cretonne-reader = { path = "../libreader" }
|
||||
|
||||
[dependencies]
|
||||
|
||||
@@ -256,125 +256,4 @@ mod tests {
|
||||
assert_eq!(ebb1_successors.contains(&ebb1), true);
|
||||
assert_eq!(ebb1_successors.contains(&ebb2), true);
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn postorder_traversal() {
|
||||
let mut func = Function::new();
|
||||
let ebb0 = func.dfg.make_ebb();
|
||||
let ebb1 = func.dfg.make_ebb();
|
||||
let ebb2 = func.dfg.make_ebb();
|
||||
let ebb3 = func.dfg.make_ebb();
|
||||
let ebb4 = func.dfg.make_ebb();
|
||||
let ebb5 = func.dfg.make_ebb();
|
||||
|
||||
func.layout.append_ebb(ebb0);
|
||||
func.layout.append_ebb(ebb1);
|
||||
func.layout.append_ebb(ebb2);
|
||||
func.layout.append_ebb(ebb3);
|
||||
func.layout.append_ebb(ebb4);
|
||||
func.layout.append_ebb(ebb5);
|
||||
|
||||
let br_ebb0_ebb1 = make_inst::branch(&mut func, ebb1);
|
||||
func.layout.append_inst(br_ebb0_ebb1, ebb0);
|
||||
|
||||
let jmp_ebb0_ebb2 = make_inst::jump(&mut func, ebb2);
|
||||
func.layout.append_inst(jmp_ebb0_ebb2, ebb0);
|
||||
|
||||
let br_ebb2_ebb2 = make_inst::branch(&mut func, ebb2);
|
||||
func.layout.append_inst(br_ebb2_ebb2, ebb2);
|
||||
|
||||
let br_ebb2_ebb1 = make_inst::branch(&mut func, ebb1);
|
||||
func.layout.append_inst(br_ebb2_ebb1, ebb2);
|
||||
|
||||
let jmp_ebb1_ebb3 = make_inst::jump(&mut func, ebb3);
|
||||
func.layout.append_inst(jmp_ebb1_ebb3, ebb1);
|
||||
|
||||
let br_ebb2_ebb4 = make_inst::branch(&mut func, ebb4);
|
||||
func.layout.append_inst(br_ebb2_ebb4, ebb2);
|
||||
|
||||
let jmp_ebb2_ebb5 = make_inst::jump(&mut func, ebb5);
|
||||
func.layout.append_inst(jmp_ebb2_ebb5, ebb2);
|
||||
|
||||
let cfg = ControlFlowGraph::new(&func);
|
||||
let mut postorder = vec![ebb3, ebb1, ebb4, ebb5, ebb2, ebb0];
|
||||
postorder.reverse();
|
||||
for (ebb, key) in cfg.reverse_postorder_ebbs() {
|
||||
assert_eq!(ebb, postorder[key]);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn loops_one() {
|
||||
let mut func = Function::new();
|
||||
let ebb0 = func.dfg.make_ebb();
|
||||
let ebb1 = func.dfg.make_ebb();
|
||||
let ebb2 = func.dfg.make_ebb();
|
||||
let ebb3 = func.dfg.make_ebb();
|
||||
func.layout.append_ebb(ebb0);
|
||||
func.layout.append_ebb(ebb1);
|
||||
func.layout.append_ebb(ebb2);
|
||||
func.layout.append_ebb(ebb3);
|
||||
|
||||
let jmp_ebb0_ebb1 = make_inst::jump(&mut func, ebb1);
|
||||
let br_ebb1_ebb3 = make_inst::branch(&mut func, ebb3);
|
||||
let jmp_ebb1_ebb2 = make_inst::jump(&mut func, ebb2);
|
||||
let jmp_ebb2_ebb3 = make_inst::jump(&mut func, ebb3);
|
||||
|
||||
func.layout.append_inst(jmp_ebb0_ebb1, ebb0);
|
||||
func.layout.append_inst(br_ebb1_ebb3, ebb1);
|
||||
func.layout.append_inst(jmp_ebb1_ebb2, ebb1);
|
||||
func.layout.append_inst(jmp_ebb2_ebb3, ebb2);
|
||||
|
||||
let cfg = ControlFlowGraph::new(&func);
|
||||
let mut postorder = vec![ebb3, ebb2, ebb1, ebb0];
|
||||
postorder.reverse();
|
||||
for (ebb, key) in cfg.reverse_postorder_ebbs() {
|
||||
assert_eq!(ebb, postorder[key]);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn loops_two() {
|
||||
let mut func = Function::new();
|
||||
let ebb0 = func.dfg.make_ebb();
|
||||
let ebb1 = func.dfg.make_ebb();
|
||||
let ebb2 = func.dfg.make_ebb();
|
||||
let ebb3 = func.dfg.make_ebb();
|
||||
let ebb4 = func.dfg.make_ebb();
|
||||
let ebb5 = func.dfg.make_ebb();
|
||||
|
||||
func.layout.append_ebb(ebb0);
|
||||
func.layout.append_ebb(ebb1);
|
||||
func.layout.append_ebb(ebb2);
|
||||
func.layout.append_ebb(ebb3);
|
||||
func.layout.append_ebb(ebb4);
|
||||
func.layout.append_ebb(ebb5);
|
||||
|
||||
let jmp_ebb0_ebb1 = make_inst::jump(&mut func, ebb1);
|
||||
let jmp_ebb0_ebb2 = make_inst::jump(&mut func, ebb2);
|
||||
let jmp_ebb1_ebb3 = make_inst::jump(&mut func, ebb3);
|
||||
let br_ebb2_ebb4 = make_inst::jump(&mut func, ebb4);
|
||||
let jmp_ebb2_ebb5 = make_inst::jump(&mut func, ebb5);
|
||||
let jmp_ebb3_ebb4 = make_inst::jump(&mut func, ebb4);
|
||||
let br_ebb4_ebb3 = make_inst::branch(&mut func, ebb3);
|
||||
let jmp_ebb4_ebb5 = make_inst::jump(&mut func, ebb5);
|
||||
let jmp_ebb5_ebb4 = make_inst::jump(&mut func, ebb4);
|
||||
|
||||
func.layout.append_inst(jmp_ebb0_ebb1, ebb0);
|
||||
func.layout.append_inst(jmp_ebb0_ebb2, ebb0);
|
||||
func.layout.append_inst(jmp_ebb1_ebb3, ebb1);
|
||||
func.layout.append_inst(br_ebb2_ebb4, ebb2);
|
||||
func.layout.append_inst(jmp_ebb2_ebb5, ebb2);
|
||||
func.layout.append_inst(jmp_ebb3_ebb4, ebb3);
|
||||
func.layout.append_inst(br_ebb4_ebb3, ebb4);
|
||||
func.layout.append_inst(jmp_ebb4_ebb5, ebb4);
|
||||
func.layout.append_inst(jmp_ebb5_ebb4, ebb5);
|
||||
|
||||
let cfg = ControlFlowGraph::new(&func);
|
||||
let mut postorder = vec![ebb1, ebb3, ebb4, ebb5, ebb2, ebb0];
|
||||
postorder.reverse();
|
||||
for (ebb, key) in cfg.reverse_postorder_ebbs() {
|
||||
assert_eq!(ebb, postorder[key]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user