http://gcc.gnu.org/bugzilla/show_bug.cgi?id=53226
--- Comment #12 from Richard Guenther <rguenth at gcc dot gnu.org> 2012-05-08 12:12:42 UTC --- One way would be to have a queue of propagation sources to be removed and delay the removal until after we have processed the function (the basic block?). Then have a worklist of stmts to re-visit which we initialize from the uses of the stmts we remove. Or something like that ... or simply do not care (though we have a few testcases that depend on this I think)