Browse Source

Cargo-fmt and cleanup.

pull/3/head
Morgan Phillips 8 years ago
parent
commit
400504d321
  1. 3
      src/libcretonne/Cargo.toml
  2. 121
      src/libcretonne/cfg.rs

3
src/libcretonne/Cargo.toml

@ -12,4 +12,7 @@ build = "build.rs"
name = "cretonne"
path = "lib.rs"
[dev-dependencies]
cretonne-reader = { path = "../libreader" }
[dependencies]

121
src/libcretonne/cfg.rs

@ -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]);
}
}
}

Loading…
Cancel
Save