Use EBB layout order almost everywhere.

The ebbs_numerically() function was a workaround for the unimplemented EBB layout
order.
This commit is contained in:
Jakob Stoklund Olesen
2016-07-18 18:52:35 -07:00
parent 4f7c624ba6
commit 652ebbdc27
4 changed files with 6 additions and 6 deletions

View File

@@ -48,11 +48,11 @@ impl ControlFlowGraph {
// Even ebbs without predecessors should show up in the CFG, albeit // Even ebbs without predecessors should show up in the CFG, albeit
// with no entires. // with no entires.
for ebb in func.ebbs_numerically() { for ebb in &func.layout {
cfg.init_ebb(ebb); cfg.init_ebb(ebb);
} }
for ebb in func.ebbs_numerically() { for ebb in &func.layout {
// Flips to true when a terminating instruction is seen. So that if additional // Flips to true when a terminating instruction is seen. So that if additional
// instructions occur an error may be returned. // instructions occur an error may be returned.
for inst in func.layout.ebb_insts(ebb) { for inst in func.layout.ebb_insts(ebb) {
@@ -120,7 +120,7 @@ mod tests {
let nodes = cfg.iter().collect::<Vec<_>>(); let nodes = cfg.iter().collect::<Vec<_>>();
assert_eq!(nodes.len(), 3); assert_eq!(nodes.len(), 3);
let mut fun_ebbs = func.ebbs_numerically(); let mut fun_ebbs = func.layout.ebbs();
for (ebb, predecessors) in nodes { for (ebb, predecessors) in nodes {
assert_eq!(*ebb, fun_ebbs.next().unwrap()); assert_eq!(*ebb, fun_ebbs.next().unwrap());
assert_eq!(predecessors.len(), 0); assert_eq!(predecessors.len(), 0);

View File

@@ -16,7 +16,7 @@ pub fn write_function(w: &mut Write, func: &Function) -> Result {
try!(write_spec(w, func)); try!(write_spec(w, func));
try!(writeln!(w, " {{")); try!(writeln!(w, " {{"));
let mut any = try!(write_preamble(w, func)); let mut any = try!(write_preamble(w, func));
for ebb in func.ebbs_numerically() { for ebb in &func.layout {
if any { if any {
try!(writeln!(w, "")); try!(writeln!(w, ""));
} }

View File

@@ -1116,7 +1116,7 @@ mod tests {
.unwrap(); .unwrap();
assert_eq!(func.name, "ebbs"); assert_eq!(func.name, "ebbs");
let mut ebbs = func.ebbs_numerically(); let mut ebbs = func.layout.ebbs();
let ebb0 = ebbs.next().unwrap(); let ebb0 = ebbs.next().unwrap();
assert_eq!(func.ebb_args(ebb0).next(), None); assert_eq!(func.ebb_args(ebb0).next(), None);

View File

@@ -106,7 +106,7 @@ impl<T: Write> CFGPrinter<T> {
} }
fn ebb_subgraphs(&mut self, func: &Function) { fn ebb_subgraphs(&mut self, func: &Function) {
for ebb in func.ebbs_numerically() { for ebb in &func.layout {
let inst_data = func.layout let inst_data = func.layout
.ebb_insts(ebb) .ebb_insts(ebb)
.filter(|inst| { .filter(|inst| {