This is the mail archive of the
mailing list for the GCC project.
Re: [RFC] cfg.c: Remove cached_make_edge.
On Mon, 2004-11-29 at 21:09 -0500, Kazu Hirata wrote:
> > An idea I just had would be to kill the edge cache except for critical
> > edges where the head of the edge has a high out degree and the tail of
> > the edge has a high in degree. That captures precisely the cases where
> > find_edge would be potentially useful. The question then becomes can we
> > build & maintain the edge cache for just those edges and what would be
> > the cost compared to what we do now.
> One problem I am struggling is that if we are caching the existence of
> edges, we still need find_edge in the following situation. Say, we
> get a request to add an edge, and that edge already exists, but we
> still need to OR the new flags into the existing edge. We could use a
> hash table for the dense part of the CFG, but I haven't thought very
> much about what to do with it.
But how likely is it that when we need to add a duplicate of one of
these high out-in degree critical edges _and_ we have new flags to
add into the existing edge?