This is the mail archive of the gcc@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]

Re: An issue for the SC: horrible documentation quality of GCC


In message <10305100225.AA20837@vlsi1.ultra.nyu.edu>, Richard Kenner writes:
 >    Then you will end up with never ending dataflow problems in the global
 >    pass.  The GCSE in the simplest definition is already too complicated
 >    for us to be implemented correctly (we are on it since 97 and still it
 >    is inferrior to what is done by other compilers).  Adding more
 >    complexity, like CSE has would make it more crazier.
 >
 >Perhaps, but a lot of that complexity is *needed*.  The reason that GCC
 >has historically beaten other compilers in code quality is paying attention 
 >to important heuristics and less on "textbook" material.  Sure the latter
 >is also critical, but the pragmatics cannot be ignored.
Note, I would disagree with the statement "GCC has historically beaten
other compilers in code quality".

In my experience of looking at GCC against compilers from multiple vendors,
including HP, IBM, Intel, Sun and others, GCC has consistently performed
slightly worse for integer codes (assuming you didn't turn on any
intra-procedural optimizations in the competing compiler).  The difference
in performance is small, but measurable (typically around 5%).  Clearly in
some cases GCC does better and in some cases the competing compiler does
better, but the overall picture I've seen has GCC performing slightly worse.

In those same comparisons, but using FP intensive code, GCC's performance
is significantly worse -- on the order of 10-15% worse.

When I've analyzed the codes in question, the inability to spot and remove
higher level redunancies is one of the major issues, along with register
allocation and good scheduling.


 >    CSE does a lot and is powerfull pass that does approximately what is
 >    accomplished by multiple passes as described in literature.  The
 >    problem is that we don't know how to make it global and/or faster and
 >    we know that it is too slow right now.
 >
 >A lot of the slowness is due to the "global" parts of its activities.  I've
 >suggested a number of times that they be turned off since they would seem
 >redundant with GCSE.  But when this is tried, it lowers performance, which
 >certainly suggests that the "complexity" of CSE is worth something.
The global nature of CSE is not redundant with GCSE.  It never has been.

Roger's recent changes (jump bypassing I believe) got us closer, but
there are still a couple important cases that CSE handles that GCSE
does not.  I believe Richard Henderson outlined those in a message to
the GCC lists sometime in the last couple months.


Jeff



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