This is the mail archive of the
mailing list for the GCC project.
Re: Speed up jump threading
- From: Geoff Keating <geoffk at geoffk dot org>
- To: Jan Hubicka <jh at suse dot cz>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: 22 Jan 2004 11:35:45 -0800
- Subject: Re: Speed up jump threading
- References: <20040122182821.GF25810@kam.mff.cuni.cz>
Jan Hubicka <email@example.com> writes:
> part of cselib problems I am seeing is that it is used quite extensivly by jump
> threading. The patch reduces number of calls of cselib_init from 17000 to
> roughly 9757 on combine.c compilation with no effect on final code by
> keeping track of basic blocks that has been modified and avoiding
> re-doing the job on basic blocks that didn't.
> Bootstrapped/regtested i686-pc-gnu-linux. OK?
> 2004-01-22 Jan Hubicka <firstname.lastname@example.org>
> * cfgcleanup.c (first_pass): New static variable.
> (try_forward_edges): Add work limiting check for threading.
> (try_crossjump_bb): Add work limiting check for crossjumping.
> (try_optimize_cfg): Maintain first pass variable.
> *** 423,434 ****
> --- 425,438 ----
> bool changed = false;
> edge e, next, *threaded_edges = NULL;
> for (e = b->succ; e; e = next)
Random Whitespace Change.
> *************** try_crossjump_bb (int mode, basic_block
> *** 1573,1578 ****
> --- 1578,1590 ----
> If there is a match, we'll do it the other way around. */
> if (e == fallthru)
> + /* If nothing changed since the last attempt, there is nothing
> + we can do. */
> + if (!first_pass
> + && (!(e->src->flags & BB_DIRTY)
> + && !(fallthru->src->flags & BB_DIRTY)))
> + continue;
> if (try_crossjump_to_edge (mode, e, fallthru))
- Geoffrey Keating <email@example.com>