aboutsummaryrefslogtreecommitdiff
path: root/gcc/gimple-range-fold.cc
diff options
context:
space:
mode:
authorAndrew MacLeod <amacleod@redhat.com>2022-09-20 19:19:30 -0400
committerAndrew MacLeod <amacleod@redhat.com>2022-09-22 14:48:30 -0400
commite7f035f66aa25e0537a0e3a76d43c71fe9531724 (patch)
tree2f455dd061bd681205e35cfead88c3f308ffc360 /gcc/gimple-range-fold.cc
parentc750e675cb77f283ff991682db7740bc5f6d4cf4 (diff)
downloadgcc-e7f035f66aa25e0537a0e3a76d43c71fe9531724.zip
gcc-e7f035f66aa25e0537a0e3a76d43c71fe9531724.tar.gz
gcc-e7f035f66aa25e0537a0e3a76d43c71fe9531724.tar.bz2
Convert CFN_BUILT_IN_GOACC_DIM_* to range-ops.
* gimple-range-fold.cc (range_of_builtin_int_call): Remove case for CFN_GOACC_DIM_*. * gimple-range-op.cc (class cfn_goacc_dim): New. (gimple_range_op_handler::maybe_builtin_call): Set arguments.
Diffstat (limited to 'gcc/gimple-range-fold.cc')
-rw-r--r--gcc/gimple-range-fold.cc19
1 files changed, 0 insertions, 19 deletions
diff --git a/gcc/gimple-range-fold.cc b/gcc/gimple-range-fold.cc
index d22fb0e..5e8a13e 100644
--- a/gcc/gimple-range-fold.cc
+++ b/gcc/gimple-range-fold.cc
@@ -889,25 +889,6 @@ fold_using_range::range_of_builtin_int_call (irange &r, gcall *call,
r.set (build_zero_cst (type), build_one_cst (type));
return true;
- case CFN_GOACC_DIM_SIZE:
- case CFN_GOACC_DIM_POS:
- // Optimizing these two internal functions helps the loop
- // optimizer eliminate outer comparisons. Size is [1,N]
- // and pos is [0,N-1].
- {
- bool is_pos = func == CFN_GOACC_DIM_POS;
- int axis = oacc_get_ifn_dim_arg (call);
- int size = oacc_get_fn_dim_size (current_function_decl, axis);
- if (!size)
- // If it's dynamic, the backend might know a hardware limitation.
- size = targetm.goacc.dim_limit (axis);
-
- r.set (build_int_cst (type, is_pos ? 0 : 1),
- size
- ? build_int_cst (type, size - is_pos) : vrp_val_max (type));
- return true;
- }
-
default:
break;
}