http://gcc.gnu.org/bugzilla/show_bug.cgi?id=35545
--- Comment #7 from Jan Hubicka <hubicka at ucw dot cz> --- > You certainly don't want to put something between DOM and phi-only-cprop. > Jump > threading will tend to expose lots of degenerate PHIs. phi-only-cprop > eliminates those degenerates. We could have used the normal cprop code, but > it > seemed too heavy-weight for the cleanups we wanted to do. Well, consttants, copies and PHIs are accounted as 0 size and thus not part of tracer's cost model, so perhaps we do not care about presence of degnerated PHIs here. Moreover it is the degnerate PHI produced by tracer that causes are problems. I assume DOM does degnerate PHIs by code duplication for jump threading and tracer is exactly the same type of transformation and for same reasons we may want phi-only-cprop after tracer as we do it after DOM. It however seems a more like VRP's missed optimization to not be able to paper over that degenerate PHI produced by tracer at first place, so I will try to poke about this tomorrow a bit more.