|
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