This is the mail archive of the
mailing list for the GCC project.
Re: [RFC] optimize x - y cmp 0 with undefined overflow
- From: Eric Botcazou <ebotcazou at adacore dot com>
- To: Richard Biener <richard dot guenther at gmail dot com>
- Cc: gcc-patches at gcc dot gnu dot org
- Date: Tue, 27 May 2014 11:59:35 +0200
- Subject: Re: [RFC] optimize x - y cmp 0 with undefined overflow
- Authentication-results: sourceware.org; auth=none
- References: <1466969 dot VvFMuDKXoD at polaris> <53896104 dot oWY7sHq2zD at polaris> <CAFiYyc07qb6BtaGerCoojJercTnO4=b184O7km-rge=CyBjq2g at mail dot gmail dot com>
> I'm asking to merge them (move them to fold_comparison).
OK, I'll repost a first patch doing only the fold-const.c massaging.
> Yeah, it would be nice to see some support. The most interesting cases
> will be symbolic-singleton +- CST where the offset shrinks a constant offset
> in a symbolic A +- CST (thus we don't get into any overflow issues). Thus
> [a + 1, a + 1] - [1, 1] -> [a, a]
> for example. We get the offsetted singleton symbolic ranges from
> conditional asserts a lot.
For the case at hand, you have [x + 1, INF] for y and you want to evaluate the
range of y - x, so you really don't want to use the range of x...