This is the mail archive of the
mailing list for the GCC project.
Re: PRE (sometimes) confuses ivopts/scev?
- From: Richard Guenther <rguenth at tat dot physik dot uni-tuebingen dot de>
- To: Daniel Berlin <dberlin at dberlin dot org>
- Cc: Ulrich Weigand <uweigand at de dot ibm dot com>, <gcc at gcc dot gnu dot org>
- Date: Wed, 26 Jan 2005 09:58:09 +0100 (CET)
- Subject: Re: PRE (sometimes) confuses ivopts/scev?
On Tue, 25 Jan 2005, Daniel Berlin wrote:
> On Tue, 25 Jan 2005, Richard Guenther wrote:
> > On Tue, 25 Jan 2005, Daniel Berlin wrote:
> >>> I created PR tree-optimization/19624 with my testcase (took a day to
> >>> reduce...).
> >> Okay, i think i've got it going now.
> >> Can you two test a patch for me if i send it to you?
> > Yes, of course.
> > Richard.
> Give this a spin.
> It should avoid insertion of the partial redundancy temporary phi node,
> but not avoid lifting invariant code.
> (Note that it may insert dead code in the predecessors in this case,
> there's not much i can do about this, at least right now. The easiest fix
> is to just run DCE after PRE, which we were planning to do anyway because
> casts sometimes cause dead code insertion).
It helps my testcase the same as -fno-tree-pre, but still does some
(useful) work. Before the patch we have
afterwards there is
with early loop unrolling on we find 3 loops instead of 12 and do
and the code produced is even better than before with -fno-tree-pre!
For a runtime test of the tramp3d testcase we gain about 2% in
runtime compared to -fno-tree-pre and about 5% compared to -ftree-pre
without your patch.
Richard Guenther <richard dot guenther at uni-tuebingen dot de>