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.