On Wed, Jul 25, 2012 at 12:21 PM, Marc Glisse <marc.gli...@inria.fr> wrote:
> Hello,
>
> here is a slight improvement to VRP for sum and difference of intervals.
> There are some things I left because I didn't understand them enough:
>
> * range_int_cst_p (&vr0): I thought it was always true by that time, but it
> isn't obvious

Possibly, though I wouldn't exclude [&a, &a] ranges for example.

> * TYPE_PRECISION (expr_type) <= HOST_BITS_PER_DOUBLE_INT: the __int256 patch
> scared me (though I would love to have larger types, especially with a
> proper range analysis to use only 2 or 3 of the 4 64-bit integers that make
> up an __int256 when it is enough, see PR 53100 for the __int128 version)

Yeah ...

> * when is the value range of a type smaller than the one given by its
> precision? Is it for enum?

That's the historical case.  I'd love to get rid of this though as the
middle-end treats a int-precision enum semantically the same as an int.

The patch is ok, if properly bootstrapped/tested.

Thanks for working on this!
Richard.

>
> 2012-07-25  Marc Glisse  <marc.gli...@inria.fr>
>
>         PR tree-optimization/30318
>         * tree-vrp.c (extract_range_from_binary_expr_1) [PLUS_EXPR]:
>         Handle __int128.
>         [MINUS_EXPR] merge with PLUS_EXPR.
>
> bootstrapped just c and c++ and ran the testsuite with no new regression.
>
> --
> Marc Glisse

Reply via email to