This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/32921] [4.3/4.4 Regression] Revision 126326 causes 12% slowdown



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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]