On 04/14/2017 11:01 AM, Jeff Law wrote:
On 04/14/2017 10:24 AM, Richard Sandiford wrote:

I think it only does that if the "containing object" that you're
validating is a MEM.  If the object you're validating is an insn
(which it always is for regcprop) then normal constrain_operands
does happen.
Hmm, you've of course right!



Adding code to do that to individual MIPS patterns feels like a hack
to me.
The pass should be doing it itself.
Agreed.  It's a hack.  But it was the best I could see to do at this
stage.

Been looking at it a bit more, and I think the problem is that we're
somehow ending up with a second stack pointer rtx, distinct from
stack_pointer_rtx.  And then I remembered that this had been discussed
before, see the tail end of:

   https://gcc.gnu.org/ml/gcc-patches/2016-01/msg02362.html

I'd be happier with the mips_stack_address_p change described there,
although it still seems like a hack.
Let me dig a little further.  Two stack pointers just sounds
fundamentally wrong.
See maybe_mode_change and cry.

jeff

Reply via email to