This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [RFA][PR tree-optimization/79095] [PATCH 1/4] Improve ranges for MINUS_EXPR and EXACT_DIV_EXPR V2


On Tue, 7 Feb 2017, Jeff Law wrote:

* tree-vrp.c (extract_range_from_binary_expr_1): For EXACT_DIV_EXPR,
if the numerator has the range ~[0,0] make the resultant range ~[0,0].

If I understand correctly, for x /[ex] 4 with x!=0, we currently split ~[0,0] into [INT_MIN,-1] and [1,INT_MAX], then apply EXACT_DIV_EXPR which gives [INT_MIN/4,-1] and [1,INT_MAX/4], and finally compute the union of those, which prefers [INT_MIN/4,INT_MAX/4] over ~[0,0]. We could change the union function, but this patch prefers changing the code elsewhere so that the new behavior is restricted to the EXACT_DIV_EXPR case (and supposedly the patch will be reverted if we get a new non-contiguous version of ranges, where union would already work). Is that it?

--
Marc Glisse


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]