This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch] conditional store elimination
- From: "Diego Novillo" <dnovillo at google dot com>
- To: "Michael Matz" <matz at suse dot de>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Thu, 6 Sep 2007 17:35:42 -0400
- Subject: Re: [patch] conditional store elimination
- References: <Pine.LNX.4.64.0708281853120.23011@wotan.suse.de>
On 8/28/07, Michael Matz <matz@suse.de> wrote:
> this patch fixes PR middle-end/27313 and thereby a performance problem on
> 456.hmmer (which now runs in 798 instead of 1080 seconds, i.e. 26%
> improvement). We talked about how to integrate this better with if
> conversion and make it also do load hoisting, but I fear we won't get to
> that during the time left for stage 2, and meanwhile I'd really like to
> have that improvement in 4.3.
Will you work on merging this with if-conversion post-4.3? I'm not
too keen on adding yet-another-flag, but if the improvement of this is
compelling enough I guess it shouldn't matter too much.
> +/* The hash table for remembering what we've seen. */
> +static htab_t seen_ssa_names;
> +/* The set of INDIRECT_REFs which can't trap. */
> +static struct pointer_set_t *nontrap_set;
Spacing before second comment.
> + /* If we've found a trapping INDIRECT_REF, _and_ it dominates us
s/us/EXP/
> + (is in a basic block on the path from us to the dominator root)
s/is/it's/
> + then we can't trap. */
> + if (found_bb && found_bb->aux == (void *)1)
> + {
> + pointer_set_insert (nontrap, exp);
> + }
> + else
> + {
> + /* We might trap, so insert us into the hash table. */
s/We/EXP/
s/us/EXP/
The rest looks fine.