about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMarkus Westerlind <markus.westerlind@imperva.com>2020-01-08 22:07:05 +0100
committerMarkus Westerlind <markus.westerlind@distilnetworks.com>2020-02-13 11:13:13 +0100
commit851a701f90081fbc83fa151e9f272cea2a990779 (patch)
tree942b59af58e31f98fa35baf76720d8d78ceca440
parent1f8df2508f2772d83011f0f651de86181123e519 (diff)
downloadrust-851a701f90081fbc83fa151e9f272cea2a990779.tar.gz
rust-851a701f90081fbc83fa151e9f272cea2a990779.zip
Reuse a Vec in mir simplification
-rw-r--r--src/librustc_mir/transform/simplify.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/librustc_mir/transform/simplify.rs b/src/librustc_mir/transform/simplify.rs
index ddf8d73e548..d589c03761a 100644
--- a/src/librustc_mir/transform/simplify.rs
+++ b/src/librustc_mir/transform/simplify.rs
@@ -94,6 +94,7 @@ impl<'a, 'tcx> CfgSimplifier<'a, 'tcx> {
         self.strip_nops();
 
         let mut start = START_BLOCK;
+        let mut new_stmts = vec![];
 
         loop {
             let mut changed = false;
@@ -114,7 +115,6 @@ impl<'a, 'tcx> CfgSimplifier<'a, 'tcx> {
                     self.collapse_goto_chain(successor, &mut changed);
                 }
 
-                let mut new_stmts = vec![];
                 let mut inner_changed = true;
                 while inner_changed {
                     inner_changed = false;
@@ -124,7 +124,7 @@ impl<'a, 'tcx> CfgSimplifier<'a, 'tcx> {
                 }
 
                 let data = &mut self.basic_blocks[bb];
-                data.statements.extend(new_stmts);
+                data.statements.extend(new_stmts.drain(..));
                 data.terminator = Some(terminator);
 
                 changed |= inner_changed;