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