On 04/01/2016 11:08 AM, Richard Biener wrote:
{
! if (canon_true_dependence (s_info->mem,
! GET_MODE (s_info->mem),
! s_info->mem_addr,
! mem, mem_addr))
{
s_info->rhs = NULL;
s_info->const_rhs = NULL;
--- 1609,1617 ----
the value of store_info. If it is, set the rhs to NULL to
keep it from being used to remove a load. */
{
! if (canon_output_dependence (s_info->mem, true,
! mem, GET_MODE (mem),
! mem_addr))
{
s_info->rhs = NULL;
s_info->const_rhs = NULL;
I think the patch is ok, but there is a comment in that function which
references canon_true_dependence; that should also be fixed up.
Isn't the testcase invalid though? I thought accesses through char *
pointers bypass aliasing rules, but accessing a char array through int *
and long * pointers doesn't?
Bernd