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
This commit is contained in:
parent
defc6f266c
commit
22b6299199
|
@ -1,3 +1,8 @@
|
|||
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
|
||||
|
|
|
@ -1754,11 +1754,12 @@ gimplify_decl_expr (tree *stmt_p, gimple_seq *seq_p)
|
|||
tree init = DECL_INITIAL (decl);
|
||||
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)
|
||||
&& flag_stack_check == GENERIC_STACK_CHECK
|
||||
&& compare_tree_int (DECL_SIZE_UNIT (decl),
|
||||
STACK_CHECK_MAX_VAR_SIZE) > 0))
|
||||
&& maybe_gt (size,
|
||||
(unsigned HOST_WIDE_INT) STACK_CHECK_MAX_VAR_SIZE)))
|
||||
{
|
||||
gimplify_vla_decl (decl, seq_p);
|
||||
is_vla = true;
|
||||
|
|
Loading…
Reference in New Issue