[PATCH] Fix PR 61225
Segher Boessenkool
segher@kernel.crashing.org
Sun Dec 7 05:03:00 GMT 2014
On Fri, Dec 05, 2014 at 06:09:11PM -0600, Segher Boessenkool wrote:
> On Fri, Dec 05, 2014 at 03:36:01PM -0700, Jeff Law wrote:
> > Zhenqiang, can you look at what happens if you provide a pattern for
> > 6+7+8 (probably via a define_and_split)?
>
> I tried this out yesterday. There are a few options (a bridge pattern
> for 6+7+8, or one for 7+8). I went with 6+7+8.
>
> So the code combine is asked to optimise is
>
> 6 A = M
> 7 T = A + B
> 8 M = T
> 9 C = cmp T, 0
... and combine will never combine a write to memory (8 here) into a
later insn (see can_combine_p). So this won't ever fly.
I see no reasonably simple way combine can be convinced to do this.
There are various possible schemes to pull insn 9 to before 8, but when
does this help and when does it hurt? It all depends on the target :-(
Segher
More information about the Gcc-patches
mailing list