------- Comment #49 from rguenth at gcc dot gnu dot org 2008-05-02 12:16 ------- Missing jump-threading causes quite a number of missed FRE opportunities, we have
if (i2 >= 0) { ... = load X } if (i2 >= 0) { ... = load X } where we figure out the redundancy but don't do the replacement because the result of the first load is not available at the place of the second load. Some pass reordering may fix this and similar problems but of course may have other side-effects. My suggestion is to move passes from fre, vrp, ch to ch, vrp, fre and dropping the final dom pass in favor of another FRE one (DOM has weaker memory optimization but in addition does some jump threading and cond expr combining, both of which don't happen a lot after loop optimizations). But pass reordering has to wait until after the statistics patch has been approved. Note that teaching DOM about the alias-oracle is very difficult and unlikely to happen - I'd rather get rid of DOM completely. -- rguenth at gcc dot gnu dot org changed: What |Removed |Added ---------------------------------------------------------------------------- BugsThisDependsOn| |34416, 35972 http://gcc.gnu.org/bugzilla/show_bug.cgi?id=32921