https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90273
Richard Biener <rguenth at gcc dot gnu.org> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |aoliva at gcc dot gnu.org --- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> --- Alex - in a series of # DEBUG x => ... # DEBUG x => ... # DEBUG x => ... what are the rules of which ones we can remove? Can we always just keep the last? What about location differences? What about possibly interleaving DEBUG_BEGIN stmts? For the quoted example # DEBUG aFirst => NULL # DEBUG aArgs#0 => NULL # DEBUG this => NULL # DEBUG this => NULL # DEBUG aFirst => NULL # DEBUG this => NULL # DEBUG this => NULL # DEBUG aFirst => NULL # DEBUG this => NULL # DEBUG aFirst => NULL # DEBUG aArgs#0 => NULL # DEBUG this => NULL # DEBUG aFirst => NULL # DEBUG aArgs#0 => NULL # DEBUG aArgs#1 => NULL # DEBUG this => NULL I fear the simple way of matching only adjacent stmts isn't catching all possibilities. Using a bitmap might be possible but can be also expensive.