On Thu, Aug 13, 2015 at 7:56 PM, Aditya K <[email protected]> wrote:
>
>
>> Date: Thu, 13 Aug 2015 12:02:43 +0200
>> Subject: Re: [PATCH] [graphite] Constrain only on INTEGER_TYPE
>> From: [email protected]
>> To: [email protected]
>> CC: [email protected]; [email protected]; [email protected];
>> [email protected]
>>
>> On Wed, Aug 12, 2015 at 10:41 PM, Tobias Grosser <[email protected]>
>> wrote:
>> > On 08/12/2015 10:33 PM, Aditya Kumar wrote:
>> >>
>> >> Passes bootstrap, no regressions.
>> >>
>> >> With this patch gcc bootstraps with graphite.
>> >> make BOOT_CFLAGS="-g -O2 -fgraphite-identity -floop-interchange
>> >> -floop-block"
>> >
>> >
>> > LGTM, but please use a longer sentence to explain what you do.
>>
>> As the middle-end generally freely exchanges INTEGER_TYPE
>> ENUMERAL_TYPE and BOOLEAN_TYPE
>> you want to use INTEGRAL_TYPE_P here.
>>
>
> Thanks.
> I tried INTEGRAL_TYPE_P, and that fails bootstrap. After a little bit of
> debugging I figured out that it is
> ENUMERAL_TYPE that causes the failure (miscompile) in tree-vect-data-refs.c.
> I can add INTEGER_TYPE and BOOLEAN_TYPE (bootstrap passes with these). But
> that would be inconsistent with the type-checks at other places in
> graphite-*.c.
> Currently, we are only checking for INTEGER_TYPE at other places.
This is weird - the code you replace did allow both ENUMERAL_TYPE and
BOOLEAN_TYPE.
my suggestion was
/* We can not handle REAL_TYPE. Failed for pr39260. */
- || TREE_CODE (TREE_TYPE (op)) == REAL_TYPE)
+ || ! INTEGRAL_TYPE_P (TREE_TYPE (op))
you also need to adjust the comment btw.
Richard.
> -Aditya
>
>
>> RIchard.
>>
>> > Tobias