some tree-ssa vs mainline stats

law@redhat.com law@redhat.com
Thu Jun 19 14:42:00 GMT 2003


In message <1056026534.20227.1.camel@p4>, Andrew MacLeod writes:
 >On Thu, 2003-06-19 at 00:29, Steven Bosscher wrote:
 >> Dan Nicolaescu wrote:
 >> 
 >> >I've done some empirical comparisons of GCC from CVS HEAD and the
 >> >tree-ssa branch. 
 >> >One comparison was for compiling a C file: combine.i,
 >
 >> >
 >> >
 >> >Does tree-ssa create unique identifiers for each ssa name, or
 >> >something similar? Is that OK?
 >> >
 >
 >One of the things on the SSA->Normal todo list is to examine coalescing
 >non-interfereing temporaries into a single temporary.. That'd probably
 >reduce the number quite significantly
Seems to me you could get your candidate sets for this by looking at
PHI nodes which have elements from distinct variables.  Those are the
cases that are going to cause copies and we know the variables are related
in some important way (otherwise they wouldn't have appeared as PHI
arguments in the same PHI node).

Now if the whole point is simply to reduce the number of variables, there's
a couple things we could investigate.

  1. Combining totally unrelated variables.  I'm not sure if this is wise
  or not.

  2. Elimination of unused variables.  Thus allowing their nodes to be
  released.   This mostly speeds up expansion by having fewer variables
  to expand.  It can also save stack space (imagine an addressable
  VAR_DECL which is unused).

Neither of these attacks the "problem" at the source, namely gimplification
really likes to create new variables.  I don't offhand know how wasteful
the gimplifier is being these days.  The one area I know the gimplifier 
sucks and creates unnecessary temps is NOP conversions.

Jeff



More information about the Gcc mailing list