diff options
| author | Santiago Pastorino <spastorino@gmail.com> | 2020-04-21 15:53:00 -0300 |
|---|---|---|
| committer | Santiago Pastorino <spastorino@gmail.com> | 2020-04-23 16:50:18 -0300 |
| commit | f925a03eadf5e875b36efaa1c5cc56aa0be78548 (patch) | |
| tree | 9180a697f315028485535e29a46b9be421a5dadf | |
| parent | 0107cecc01cf28bd298e33b44d6bacba6e4b3d77 (diff) | |
| download | rust-f925a03eadf5e875b36efaa1c5cc56aa0be78548.tar.gz rust-f925a03eadf5e875b36efaa1c5cc56aa0be78548.zip | |
Make ConstPropagator only visit basic blocks when visiting body
Avoid exercising unevaluated constants and go straight to visit the blocks.
| -rw-r--r-- | src/librustc_mir/transform/const_prop.rs | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/librustc_mir/transform/const_prop.rs b/src/librustc_mir/transform/const_prop.rs index beabdf7f784..5b415cb806a 100644 --- a/src/librustc_mir/transform/const_prop.rs +++ b/src/librustc_mir/transform/const_prop.rs @@ -833,6 +833,12 @@ impl<'mir, 'tcx> MutVisitor<'tcx> for ConstPropagator<'mir, 'tcx> { self.tcx } + fn visit_body(&mut self, body: &mut Body<'tcx>) { + for (bb, data) in body.basic_blocks_mut().iter_enumerated_mut() { + self.visit_basic_block_data(bb, data); + } + } + fn visit_constant(&mut self, constant: &mut Constant<'tcx>, location: Location) { trace!("visit_constant: {:?}", constant); self.super_constant(constant, location); |
