On 07/04/2017 06:41 AM, Jakub Jelinek wrote:
> On Tue, Jul 04, 2017 at 02:00:13PM +0200, Richard Biener wrote:
>>> That was intentional.  If a->e != NULL, then we know that b->e != NULL,
>>> because we have
>>>   else if (a->e != NULL && b->e == NULL)
>>>     return -1;
>>> earlier.  Similarly, if a->e == NULL, then we know that b-> == NULL, because
>>> we have:
>>>   if (a->e == NULL && b->e != NULL)
>>>     return 1;
>>> earlier.
>>
>> Ah, ok.  Twisty ;)  I suppose jump threading will have eliminated
>> the extra test.
> 
> In the first case maybe, I doubt it would do that after the
> iterative_hash_expr calls which are likely not pure.
Correct.  It'll have to assume that the memory objects changed.

Jeff

Reply via email to