------- 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

Reply via email to