Hi,
this patch implements new variable pool - datastructure with interface
symmetric to cgraph that is used to hold global variables. At the
moment it
just implements the interface and reachability analysis (via checking
what
assembly names has been output and what variables are needed by
functions
to be expanded in cgraphunit), so it can deal with cyclic references
dead
from outside like:
static char *a=(char *)&b;
static char *b=(char *)&a;
That is probably not big deal. It is mostly usefull to make C++
transition
easier, but I would like to implement some simple optimizations, like
constification of variables never writen to and unification of the
same objects
whose address is never taken.
Regtested/bootstrapped i386/mainline together with the previous patch
to
cleanup unit-at-a-time. OK?