[100/nnn] poly_int: memrefs_conflict_p

Jeff Law law@redhat.com
Tue Dec 5 23:29:00 GMT 2017


On 10/23/2017 11:40 AM, Richard Sandiford wrote:
> The xsize and ysize arguments to memrefs_conflict_p are encode such
> that:
> 
> - 0 means the size is unknown
> - >0 means the size is known
> - <0 means that the negative of the size is a worst-case size after
>   alignment
> 
> In other words, the sign effectively encodes a boolean; it isn't
> meant to be taken literally.  With poly_ints these correspond to:
> 
> - known_zero (...)
> - may_gt (..., 0)
> - may_lt (..., 0)
> 
> respectively.
> 
> 
> 2017-10-23  Richard Sandiford  <richard.sandiford@linaro.org>
> 	    Alan Hayward  <alan.hayward@arm.com>
> 	    David Sherwood  <david.sherwood@arm.com>
> 
> gcc/
> 	* alias.c (addr_side_effect_eval): Take the size as a poly_int64
> 	rather than an int.  Use plus_constant.
> 	(memrefs_conflict_p): Take the sizes as poly_int64s rather than ints.
> 	Take the offset "c" as a poly_int64 rather than a HOST_WIDE_INT.
> 
Not sure why I was dreading this one and kept putting it off.  It really
wasn't too bad to work through.

OK.
jeff



More information about the Gcc-patches mailing list