On Tue, Nov 08, 2011 at 11:37:57AM +0100, Olivier Hainque wrote: > Joseph resorted to mem:scratch to impose a strong barrier. That's certainly > safe and I don't think the performance impact can be significant, so this > looks like a good way out.
I agree. Our fancy powerpc stack deallocation barriers rely too much on alias analysis, which as you've shown (thanks!) isn't reliable in this instance. Other targets just use the mem:scratch barrier. > I tried an approach in between here: replace the stack_tie insn by a > frame_tie insn with frame_base_rtx as the second base. In the case above, > with frame_base_rtx==r11, this is something like > > (set (mem/c:BLK (reg:SI 11 11) [0 A8]) > (unspec:BLK [ > (mem/c:BLK (reg:SI 11 11) [0 A8]) > (mem/c:BLK (reg/f:SI 1 1) [0 A8]) Looks similar to http://gcc.gnu.org/bugzilla/show_bug.cgi?id=30282#c15 -- Alan Modra Australia Development Lab, IBM