http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54693
--- Comment #1 from Jakub Jelinek <jakub at gcc dot gnu.org> 2012-10-01 15:26:10 UTC --- In VRP it is jump threading that performs the first CFG transformation, and the second one happens as two merge_block opportunities during cleanup_tree_cfg. Doing the new DEBUG stmt insertion upon merge_blocks would be weird, perhaps some pass should just in addition to what it does now try to detect at least the simple cases, where at the end of more than one predecessor block are live debug stmts for some decl, and they use invariants or SSA_NAMEs that appear together in some PHI - then adding a DEBUG stmt at the start of the bb with a PHI might improve debug info quality, something var-tracking won't be able to figure out due to the conditional.