PATCH: use VEC_unordered_remove for edge handling

Jeffrey A Law law@redhat.com
Fri Oct 22 18:54:00 GMT 2004


On Thu, 2004-10-21 at 19:44, Ben Elliston wrote:
> When the edge-vector-branch was merged, the branch conservatively used
> ordered removal and insertions into the front of edge vectors to
> preserve the ordering as seen in mainline's linked lists, mostly to
> aid debugging.
I noticed this as well and figured it was either to aid debugging
or to make it easier to deal with finding the PHI args associated
with a particular edge problem.

In the particular case I was dealing with we were deleting
thousands upon thousands of edges; once I changed the SSA update
algorithm for jump threading we didn't need to eliminate so
many useless edges and the cost of keeping the edge vectors in
order wasn't a problem, so I dropped my patch to use unordered
removals.
 
> 
> Some testsuite failures popped up that prevented me from removing
> these two constraints at the last minute.  Those problems seem to
> persist, but I've been able to verify that the first constraint can
> now be removed.  It produces a 9% speedup on a "time make bootstrap".
> Steven Bosscher and I have tested this patch on a variety of hosts
> using bootstraps and "make check".
> 
> Okay for mainline?
> 
> 2004-10-22  Ben Elliston  <bje@au.ibm.com>
> 
> 	* cfg.c (remove_edge): Use VEC_unordered_remove.
> 	(redirect_edge_succ): Likewise.
> 	(redirect_edge_pred): Likewise.
> 	* cfgrtl.c (force_nonfallthru_and_redirect): Likewise.
This is fine.

jeff




More information about the Gcc-patches mailing list