diff --git a/gcc/tree-ssa-dce.cc b/gcc/tree-ssa-dce.cc
index be21a2d0b50..064e47cbf23 100644
--- a/gcc/tree-ssa-dce.cc
+++ b/gcc/tree-ssa-dce.cc
@@ -1508,6 +1508,7 @@ eliminate_unnecessary_stmts (bool aggressive)
 
       /* Remove dead statements.  */
       auto_bitmap debug_seen;
+      bool debug_begin_seen = false;
       for (gsi = gsi_last_bb (bb); !gsi_end_p (gsi); gsi = psi)
 	{
 	  stmt = gsi_stmt (gsi);
@@ -1670,6 +1671,16 @@ eliminate_unnecessary_stmts (bool aggressive)
 		remove_dead_stmt (&gsi, bb, to_remove_edges);
 	      continue;
 	    }
+	  else if (gimple_debug_begin_stmt_p (stmt))
+	    {
+	      /* We are only keeping the last debug-begin in a series of
+		 debug-begin stmts.  */
+	      if (debug_begin_seen)
+		remove_dead_stmt (&gsi, bb, to_remove_edges);
+	      debug_begin_seen = true;
+	      continue;
+	    }
+	  debug_begin_seen = false;
 	  bitmap_clear (debug_seen);
 	}
 
