On Thu, Dec 8, 2011 at 2:49 PM, Michael Matz <m...@suse.de> wrote:
> Hi,
>
> On Thu, 8 Dec 2011, Richard Guenther wrote:
>
>> > What I am not sure is whether the coalescing algorithm or the
>> > expanding procedure is wrong here.
>
> The forwarding of _218 is wrong.  TER shouldn't have marked it as being
> able to forward (check the expand-detailed dump for the "Replacing
> Expressions" section).  Obviously it does think it can forward it, so
> something is wrong in tree-ssa-ter.c.
>
> If you can't come up with a testcase that fails with some available cross
> compiler (though I wonder why, the tree-ssa parts of the compiler are not
> that target dependend, so maybe you can show similar forwarding with an
> adjusted testcase for something publically available) you have to debug it
> yourself (I'm right now not aware of any known bug in 4.5 regarding this
> particular situation).
>
> There should be a call to kill_expr on the statement
>   ptr_h2_310 = ptr_h2_493 + 16;
> which should have killed the expression MEM[ptr_h2_493] (and hence _218)
> from the available expressions.

Which reminds me of

2011-09-09  Richard Guenther  <rguent...@suse.de>

        * tree-ssa-operands.c (swap_tree_operands): Always adjust
        existing operand positions.

can you try backporting that?

Richard.

>
> Ciao,
> Michael.

Reply via email to