On Tue, Jan 5, 2016 at 5:36 PM, Jeff Law <l...@redhat.com> wrote: > On 01/05/2016 09:29 AM, Alan Lawrence wrote: >>> >>> Without looking at the patch, ARRAY_REFs can have non-constant indices >>> which get_ref_base_and_extend handles conservative. You should make >>> sure to not regress here. >> >> >> Thanks for the warning - my understanding is that in such a case, >> get_ref_base_and_extent returns max_size=(size of the whole array), >> size=(size of one element); and I only handle cases where >> size==max_size. Arrays of unknown length have size -1, so will never be >> equal. > > That was my understanding as well -- I'd been looking at that mostly in > terms of making sure we were hashing the right stuff and that we were > checking the right stuff in the equality function.
Now looking at the patch I wonder why you restrict this to plain MEM_REFs and ARRAY_REFs. MEM_REFs should already be in the desired canonical form and I don't see why you can't extend ARRAY_REFs to handled_component_p () to make it also equate component references and things like real/imagparts. Richard. > jeff