This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: PATCH: use VEC_unordered_remove for edge handling
- From: Jeffrey A Law <law at redhat dot com>
- To: Ben Elliston <bje at au1 dot ibm dot com>
- Cc: gcc-patches at gcc dot gnu dot org, stevenb at suse dot de
- Date: Fri, 22 Oct 2004 12:48:28 -0600
- Subject: Re: PATCH: use VEC_unordered_remove for edge handling
- Organization: Red Hat, Inc
- References: <876553edcn.fsf@au.ibm.com>
- Reply-to: law at redhat dot com
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