Commit 22b62991 by Richard Sandiford Committed by Richard Sandiford

Don't treat variable-length vectors as VLAs during gimplification

Source-level SVE vectors should be gimplified in the same way
as normal fixed-length vectors rather than as VLAs.

This is tested by later SVE patches.

2019-09-18  Richard Sandiford  <richard.sandiford@arm.com>

gcc/
	* gimplify.c (gimplify_decl_expr): Use poly_int_tree_p instead
	of checking specifically for INTEGER_CST.

From-SVN: r275870
parent defc6f26
2019-09-18 Richard Sandiford <richard.sandiford@arm.com> 2019-09-18 Richard Sandiford <richard.sandiford@arm.com>
* gimplify.c (gimplify_decl_expr): Use poly_int_tree_p instead
of checking specifically for INTEGER_CST.
2019-09-18 Richard Sandiford <richard.sandiford@arm.com>
* stor-layout.c (compute_record_mode): Operate on poly_uint64 * stor-layout.c (compute_record_mode): Operate on poly_uint64
sizes instead of uhwi sizes. sizes instead of uhwi sizes.
......
...@@ -1754,11 +1754,12 @@ gimplify_decl_expr (tree *stmt_p, gimple_seq *seq_p) ...@@ -1754,11 +1754,12 @@ gimplify_decl_expr (tree *stmt_p, gimple_seq *seq_p)
tree init = DECL_INITIAL (decl); tree init = DECL_INITIAL (decl);
bool is_vla = false; bool is_vla = false;
if (TREE_CODE (DECL_SIZE_UNIT (decl)) != INTEGER_CST poly_uint64 size;
if (!poly_int_tree_p (DECL_SIZE_UNIT (decl), &size)
|| (!TREE_STATIC (decl) || (!TREE_STATIC (decl)
&& flag_stack_check == GENERIC_STACK_CHECK && flag_stack_check == GENERIC_STACK_CHECK
&& compare_tree_int (DECL_SIZE_UNIT (decl), && maybe_gt (size,
STACK_CHECK_MAX_VAR_SIZE) > 0)) (unsigned HOST_WIDE_INT) STACK_CHECK_MAX_VAR_SIZE)))
{ {
gimplify_vla_decl (decl, seq_p); gimplify_vla_decl (decl, seq_p);
is_vla = true; is_vla = true;
......
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