http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59019
--- Comment #4 from Eric Botcazou <ebotcazou at gcc dot gnu.org> --- > The problem I see where is we're going to have to run some kind of cleanup > pass after each RTL pass that might make these transformations (cse, gcse, > cprop, combine and I'm sure others). That seems quite heavyweight and bad > from a compile-time standpoint. > > But I don't really see a way out. I guess I'm hoping you have other > suggestions for how we can fix this. Maybe declare trap_if instructions unconditionally control-flow altering? They are probably quite rare in practice, so perhaps this wouldn't really pessimize.