This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [patch] canonicalize unsigned [1,MAX] ranges into ~[0,0]
Hi Aldy,
Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE> wrote:
>>
>> On 10/15/19 7:58 AM, Rainer Orth wrote:
>>> Hi Aldy,
>>>
>>>>>> ~[0,0] has been the accepted way for a long time, I'd really prefer to
>>>>>> keep that (for now).
>>>>> It has. Very true. But I don't necessarily think that means we should
>>>>> be introducing even more of 'em.
>>> [...]
>>>> Happily, normalizing into ~0 for signed and [1,MAX] for unsigned,
>>>> simplified the patch because it on longer needs tweaks to
>>>> ranges_from_anti_range.
>>>>
>>>> OK for trunk?
>>>
>>> the new testcase FAILs on several (all?) 32-bit targets:
>>>
>>> +FAIL: gcc.dg/tree-ssa/evrp4.c scan-tree-dump evrp "\\\\[1B, -1B\\\\]"
>>
>> That's unfortunate.
>>
>> Is this the only test that is failing?
>
> it's the only on on Solaris/SPARC and Solaris/x86. Haven't checked
> other affected targets, though.
>
>>> I'm seeing this on 32-bit i386-pc-solaris2.11 and sparc-sun-solaris2.11,
>>> with more reports for armv8l, pru, and s390x.
>>>
>>> Comparing the dumps between 64 and 32-bit, I see
>>>
>>> -_1: int * [1B, -1B]
>>> +_1: int * [1B, 4294967295B]
>>
>> I wonder why 32-bit targets at displaying 4294967295 instead of -1. Or are
>> pointers 64-bits here?
>
> No, it's a pure 32-bit target. The compiler is 32-bit, too, but
> bi-arch (32 and 64-bit).
identical result on i686-darwin9, also a pure32b target (with a 64b multilb).
Iain
- References:
- [patch] canonicalize unsigned [1,MAX] ranges into ~[0,0]
- Re: [patch] canonicalize unsigned [1,MAX] ranges into ~[0,0]
- Re: [patch] canonicalize unsigned [1,MAX] ranges into ~[0,0]
- Re: [patch] canonicalize unsigned [1,MAX] ranges into ~[0,0]
- Re: [patch] canonicalize unsigned [1,MAX] ranges into ~[0,0]
- Re: [patch] canonicalize unsigned [1,MAX] ranges into ~[0,0]
- Re: [patch] canonicalize unsigned [1,MAX] ranges into ~[0,0]
- Re: [patch] canonicalize unsigned [1,MAX] ranges into ~[0,0]
- Re: [patch] canonicalize unsigned [1,MAX] ranges into ~[0,0]
- Re: [patch] canonicalize unsigned [1,MAX] ranges into ~[0,0]