HTEC Public Hi,
> > GCC can modify a rtx which was created using stack_pointer_rtx. > > This means that just doing a straight address comparision of a rtx > > against stack_pointer_rtx to see whether it is the stack pointer > > register will not be correct in all cases. > Umm, no. There is one and only one stack_pointer_rtx. If something is > modifying stack_pointer_rtx, then that's a bug. This feels like it's > papering over a problem elsewhere. At the least it would need a better > explanation of how/why you're getting addresses that reference the same > hard register as the stack pointer, but which aren't stack_pointer_rtx. > I vaguely recall a problem in this space from regrename.cc, but I > thought we fixed that long ago. > Jeff I searched the targets other than the MIPS target and found out that there are the commits 74dc3e9 and c21242e that test for a REGNO instead of comparing the rtx to stack_pointer_rtx directly. Also, I found that the commit d60e544 states the following: "We can't just compare with STACK_POINTER_RTX because the reference to the stack pointer might be in some other mode. In particular, an explict clobber in an asm statement will result in a QImode clober." I am wondering if this could be a satisfying explanation. Kind regards, Aleksandar