Is this use of rtx_addr_varies_p an aliasing bug?
Jim Wilson
wilson@specifixinc.com
Wed Apr 21 03:22:00 GMT 2004
Nigel Stephens wrote:
> architectures I guess) be passed the enclosing MEM. My hunch is that all
> current uses of rtx_addr_varies_p should be replaced by rtx_varies_p,
> and rtx_addr_varies_p should then be removed. Does that make sense, or
> have I missed something?
gcc-bugs is not a very good place for questions like this. gcc-bugs is
primarily used for output from the bugzilla bug database. You are
better off sending questions like this to the gcc list.
Yes, this all makes sense. This looks like it has been broken ever
since the fixed_scalar_and_varying_struct_p function was first created,
which was in between the 2.8 and 2.95 releases.
rtx_addr_varies_p does do one more thing than rtx_varies_p. It returns
true if passed a BLKmode MEM. I wonder if this explains why we have
been having all sorts of BLKmode related problems with MEM_IN_STRUCT_P
in the gcc-3.4 release process. Perhaps some of them would go away if
we re-added the BLKmode test.
At this point though, we have been clearly operating without the BLKmode
test for over 5 years, so there is no overriding need to keep it.
I think it looks right to replace all current uses of rtx_addr_varies_p
with rtx_varies_p. This might expose optimizer issues though, since it
will make the MEM_IN_STRUCT_P optimizations work in cases where they
have been accidentally disabled for 5 years, so we will have to be
careful about that.
--
Jim Wilson, GNU Tools Support, http://www.SpecifixInc.com
More information about the Gcc-bugs
mailing list