Commit 67d2229e by Tom de Vries Committed by Tom de Vries

Simplify fold_internal_goacc_dim

2017-12-20  Tom de Vries  <tom@codesourcery.com>

	* gimple-fold.c (fold_internal_goacc_dim): Simplify.

From-SVN: r255905
parent 1679da15
2017-12-20 Tom de Vries <tom@codesourcery.com>
* gimple-fold.c (fold_internal_goacc_dim): Simplify.
2017-12-20 Jakub Jelinek <jakub@redhat.com>
PR ipa/83506
......@@ -3721,15 +3721,23 @@ fold_internal_goacc_dim (const gimple *call)
{
int axis = oacc_get_ifn_dim_arg (call);
int size = oacc_get_fn_dim_size (current_function_decl, axis);
bool is_pos = gimple_call_internal_fn (call) == IFN_GOACC_DIM_POS;
tree result = NULL_TREE;
tree type = TREE_TYPE (gimple_call_lhs (call));
/* If the size is 1, or we only want the size and it is not dynamic,
we know the answer. */
if (size == 1 || (!is_pos && size))
switch (gimple_call_internal_fn (call))
{
tree type = TREE_TYPE (gimple_call_lhs (call));
result = build_int_cst (type, size - is_pos);
case IFN_GOACC_DIM_POS:
/* If the size is 1, we know the answer. */
if (size == 1)
result = build_int_cst (type, 0);
break;
case IFN_GOACC_DIM_SIZE:
/* If the size is not dynamic, we know the answer. */
if (size)
result = build_int_cst (type, size);
break;
default:
break;
}
return result;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment