Compute the control flow graph of `func`. This will clear and overwrite any information already stored in this data structure.
(&mut self, func: &Function)
| 105 | /// |
| 106 | /// This will clear and overwrite any information already stored in this data structure. |
| 107 | pub fn compute(&mut self, func: &Function) { |
| 108 | let _tt = timing::flowgraph(); |
| 109 | self.clear(); |
| 110 | self.data.resize(func.dfg.num_blocks()); |
| 111 | |
| 112 | for block in &func.layout { |
| 113 | self.compute_block(func, block); |
| 114 | } |
| 115 | |
| 116 | self.valid = true; |
| 117 | } |
| 118 | |
| 119 | fn compute_block(&mut self, func: &Function, block: Block) { |
| 120 | inst_predicates::visit_block_succs(func, block, |inst, dest, _| { |
no test coverage detected