wide int patch #7: Replacement of INT_CST_LT and INT_CST_LT_UNSIGNED
Richard Biener
richard.guenther@gmail.com
Fri Oct 19 08:35:00 GMT 2012
On Thu, Oct 18, 2012 at 7:32 PM, Kenneth Zadeck
<zadeck@naturalbridge.com> wrote:
> This patch replaces all instances of INT_CST_LT and INT_CST_LT_UNSIGNED
> with
> the new functions tree_int_cst_lts_p and tree_int_cst_ltu_p. With the new
> implementation of int_cst these functions will be too big to do inline.
These new function names are extremely confusing given that we already
have tree_int_cst_lt which does the right thing based on the signedness
of the INTEGER_CST trees.
The whole point of the macros was to be inlined and you break that. That is,
for example
if (unsignedp && unsignedp0)
{
- min_gt = INT_CST_LT_UNSIGNED (primop1, minval);
- max_gt = INT_CST_LT_UNSIGNED (primop1, maxval);
- min_lt = INT_CST_LT_UNSIGNED (minval, primop1);
- max_lt = INT_CST_LT_UNSIGNED (maxval, primop1);
+ min_gt = tree_int_cst_ltu_p (primop1, minval);
+ max_gt = tree_int_cst_ltu_p (primop1, maxval);
+ min_lt = tree_int_cst_ltu_p (minval, primop1);
+ max_lt = tree_int_cst_ltu_p (maxval, primop1);
}
else
{
- min_gt = INT_CST_LT (primop1, minval);
- max_gt = INT_CST_LT (primop1, maxval);
- min_lt = INT_CST_LT (minval, primop1);
- max_lt = INT_CST_LT (maxval, primop1);
+ min_gt = tree_int_cst_lts_p (primop1, minval);
...
could have just been
min_gt = tree_int_cst_lt (primop1, minval);
....
without any sign check.
So if you think you need to kill the inlined variants please use the existing
tree_int_cst_lt instead.
Thanks,
Richard.
> This is a small patch that has no prerequisites.
>
> Tested on x86-64.
>
> kenny
More information about the Gcc-patches
mailing list