This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [patch] Crossjumping corrupts alias info


Hi,

>> +   if ((MEM_OFFSET (x) != MEM_OFFSET (y))
>> +       || ! mem_expr_equal_p (MEM_EXPR (x), MEM_EXPR (y)))
>MEM_OFFSET should be compared (and cleared) independently of MEM_EXPR.

For equal expressions with different offsets I've only to clear the offsets - that's clear, but I think
that the offset doesn't make sense if the expressions differ - right? So for different expression
with equal offsets the offsets should be cleared as well.

>> +   if (MEM_SIZE (x) != MEM_SIZE (y))
>> +   if (MEM_ALIGN (x) != MEM_ALIGN (y))
>Use minimum.

I understand this for the alignment data, but is this right for the size? The size info is used 
in nonoverlapping_memrefs_p to decide whether referenced memory areas can overlap or not.
To my mind the probability to overlap increases with the size of the memory areas. In order to
be on the safe side the bigger size should come through.

Bye,

Andreas


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]