|
14 | 14 |
|
15 | 15 | use rustc_hir as hir; |
16 | 16 | use rustc_middle::mir; |
17 | | -use rustc_middle::mir::traversal::ReversePostorderIter; |
18 | 17 | use rustc_middle::mir::visit::{MutVisitor, MutatingUseContext, PlaceContext, Visitor}; |
19 | 18 | use rustc_middle::mir::*; |
20 | 19 | use rustc_middle::ty::subst::InternalSubsts; |
@@ -53,9 +52,8 @@ impl<'tcx> MirPass<'tcx> for PromoteTemps<'tcx> { |
53 | 52 | return; |
54 | 53 | } |
55 | 54 |
|
56 | | - let mut rpo = traversal::reverse_postorder(body); |
57 | 55 | let ccx = ConstCx::new(tcx, body); |
58 | | - let (mut temps, all_candidates) = collect_temps_and_candidates(&ccx, &mut rpo); |
| 56 | + let (mut temps, all_candidates) = collect_temps_and_candidates(&ccx); |
59 | 57 |
|
60 | 58 | let promotable_candidates = validate_candidates(&ccx, &mut temps, &all_candidates); |
61 | 59 |
|
@@ -166,14 +164,13 @@ impl<'tcx> Visitor<'tcx> for Collector<'_, 'tcx> { |
166 | 164 |
|
167 | 165 | pub fn collect_temps_and_candidates<'tcx>( |
168 | 166 | ccx: &ConstCx<'_, 'tcx>, |
169 | | - rpo: &mut ReversePostorderIter<'_, 'tcx>, |
170 | 167 | ) -> (IndexVec<Local, TempState>, Vec<Candidate>) { |
171 | 168 | let mut collector = Collector { |
172 | 169 | temps: IndexVec::from_elem(TempState::Undefined, &ccx.body.local_decls), |
173 | 170 | candidates: vec![], |
174 | 171 | ccx, |
175 | 172 | }; |
176 | | - for (bb, data) in rpo { |
| 173 | + for (bb, data) in traversal::reverse_postorder(ccx.body) { |
177 | 174 | collector.visit_basic_block_data(bb, data); |
178 | 175 | } |
179 | 176 | (collector.temps, collector.candidates) |
|
0 commit comments