]> git.lizzy.rs Git - rust.git/commitdiff
Auto merge of #34149 - arielb1:remove-remove-dead-blocks, r=nikomatsakis
authorbors <bors@rust-lang.org>
Thu, 9 Jun 2016 19:07:38 +0000 (12:07 -0700)
committerGitHub <noreply@github.com>
Thu, 9 Jun 2016 19:07:38 +0000 (12:07 -0700)
MIR cleanups and predecessor cache

This PR cleans up a few things in MIR and adds a predecessor cache to allow graph algorithms to be run easily.

r? @nikomatsakis

1  2 
src/librustc_borrowck/borrowck/mir/elaborate_drops.rs
src/librustc_borrowck/borrowck/mir/mod.rs
src/librustc_driver/driver.rs

index d5539f953fb02e5a7b208960efa29d44a98400c5,362d6ce2acafc6587dce5a4281e79ebf2b31bdc5..74ebad107eb8a9580bace011ecc639af35849f29
@@@ -212,10 -210,19 +210,9 @@@ impl<'b, 'tcx> ElaborateDropsCtxt<'b, '
          }
      }
  
 -    fn lvalue_contents_are_tracked(&self, lv: &Lvalue<'tcx>) -> bool {
 -        let ty = self.mir.lvalue_ty(self.tcx, lv).to_ty(self.tcx);
 -        match ty.sty {
 -            ty::TyArray(..) | ty::TySlice(..) | ty::TyRef(..) | ty::TyRawPtr(..) => {
 -                false
 -            }
 -            _ => self.lvalue_is_tracked(lv)
 -        }
 -    }
 -
      fn collect_drop_flags(&mut self)
      {
-         for bb in self.mir.all_basic_blocks() {
-             let data = self.mir.basic_block_data(bb);
+         for (bb, data) in self.mir.basic_blocks().iter_enumerated() {
              let terminator = data.terminator();
              let location = match terminator.kind {
                  TerminatorKind::Drop { ref location, .. } |
Simple merge