about summary refs log tree commit diff
path: root/src/librustc_mir/dataflow/mod.rs
diff options
context:
space:
mode:
authorcsmoe <35686186+csmoe@users.noreply.github.com>2018-07-05 09:06:04 +0800
committercsmoe <35686186+csmoe@users.noreply.github.com>2018-07-05 09:46:10 +0800
commit37228fe63286a920ad18cf72d37dfe69c7e8dc2d (patch)
tree8f7bdf75ff6ab6ee72a5113e3731a67f31e02068 /src/librustc_mir/dataflow/mod.rs
parent8fa9bfeb154e18b6a9caaabd1494fddea9d0d63a (diff)
downloadrust-37228fe63286a920ad18cf72d37dfe69c7e8dc2d.tar.gz
rust-37228fe63286a920ad18cf72d37dfe69c7e8dc2d.zip
reverse_postorder
Diffstat (limited to 'src/librustc_mir/dataflow/mod.rs')
-rw-r--r--src/librustc_mir/dataflow/mod.rs3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/librustc_mir/dataflow/mod.rs b/src/librustc_mir/dataflow/mod.rs
index 98cd9c35d88..8ed42a707dd 100644
--- a/src/librustc_mir/dataflow/mod.rs
+++ b/src/librustc_mir/dataflow/mod.rs
@@ -16,6 +16,7 @@ use rustc_data_structures::bitslice::{bitwise, BitwiseOperator};
 
 use rustc::ty::{self, TyCtxt};
 use rustc::mir::{self, Mir, BasicBlock, BasicBlockData, Location, Statement, Terminator};
+use rustc::mir::traversal;
 use rustc::session::Session;
 
 use std::borrow::Borrow;
@@ -333,7 +334,7 @@ pub(crate) trait DataflowResultsConsumer<'a, 'tcx: 'a> {
 
     fn analyze_results(&mut self, flow_uninit: &mut Self::FlowState) {
         let flow = flow_uninit;
-        for bb in self.mir().basic_blocks().indices() {
+        for (bb, _) in traversal::reverse_postorder(self.mir()) {
             flow.reset_to_entry_of(bb);
             self.process_basic_block(bb, flow);
         }