> I found this explanation confusing.
Likewise.
> If I'm understanding things correctly, we can have multiple instances of
> the same address on the addr_list. It's just an address, not a full
> MEM, so we don't have address space information. Right?
>
> Once we've found the right addr_list, we have to walk the values list
> since that's the one that will carry the actual MEM expression where
> we've got access to the address space? For that second case we need to
> check both the underlying address as well as the address space?
I don't understand why we need to re-check that the value is at the specified
address, since it is on the addr_list defined like this:
/* If this value is used as an address, points to a list of values that
use it as an address in a MEM. */
struct elt_list *addr_list;
Why was it put onto the list in the first place then? Does the fix not belong
there instead of in cselib_lookup_mem?
--
Eric Botcazou