about summary refs log tree commit diff
path: root/compiler/rustc_mir_transform/src/simplify.rs
diff options
context:
space:
mode:
authorRalf Jung <post@ralfj.de>2023-01-09 13:49:07 +0100
committerRalf Jung <post@ralfj.de>2023-01-09 13:49:07 +0100
commit236ae262bc80dabf67669a2763fda5034982b9b9 (patch)
tree5fcef00e3290dcedd98e39e2b73c978cde47413c /compiler/rustc_mir_transform/src/simplify.rs
parent8740443c354ee1510a16017fae2104fcc39933cb (diff)
parentc54c8cbac882e149e04a9e1f2d146fd548ae30ae (diff)
Merge from rustc
Diffstat (limited to 'compiler/rustc_mir_transform/src/simplify.rs')
-rw-r--r--compiler/rustc_mir_transform/src/simplify.rs15
1 files changed, 14 insertions, 1 deletions
diff --git a/compiler/rustc_mir_transform/src/simplify.rs b/compiler/rustc_mir_transform/src/simplify.rs
index 8212a7b523b..8f6abe7a912 100644
--- a/compiler/rustc_mir_transform/src/simplify.rs
+++ b/compiler/rustc_mir_transform/src/simplify.rs
@@ -379,9 +379,21 @@ fn save_unreachable_coverage(
     ));
 }
 
-pub struct SimplifyLocals;
+pub struct SimplifyLocals {
+    label: String,
+}
+
+impl SimplifyLocals {
+    pub fn new(label: &str) -> SimplifyLocals {
+        SimplifyLocals { label: format!("SimplifyLocals-{}", label) }
+    }
+}
 
 impl<'tcx> MirPass<'tcx> for SimplifyLocals {
+    fn name(&self) -> &str {
+        &self.label
+    }
+
     fn is_enabled(&self, sess: &rustc_session::Session) -> bool {
         sess.mir_opt_level() > 0
     }
@@ -557,6 +569,7 @@ fn remove_unused_definitions(used_locals: &mut UsedLocals, body: &mut Body<'_>)
 
                     StatementKind::SetDiscriminant { ref place, .. }
                     | StatementKind::Deinit(ref place) => used_locals.is_used(place.local),
+                    StatementKind::Nop => false,
                     _ => true,
                 };