mirror of git://gcc.gnu.org/git/gcc.git
cfgexpand.c (add_stack_var): Assert that the alignment is not zero.
* cfgexpand.c (add_stack_var): Assert that the alignment is not zero. * tree-ssa-ccp.c (fold_builtin_alloca_for_var): Revert latest change. Force at least BITS_PER_UNIT alignment on the new variable. From-SVN: r178499
This commit is contained in:
parent
1822c31f05
commit
13868f4049
|
|
@ -1,3 +1,9 @@
|
|||
2011-09-03 Eric Botcazou <ebotcazou@adacore.com>
|
||||
|
||||
* cfgexpand.c (add_stack_var): Assert that the alignment is not zero.
|
||||
* tree-ssa-ccp.c (fold_builtin_alloca_for_var): Revert latest change.
|
||||
Force at least BITS_PER_UNIT alignment on the new variable.
|
||||
|
||||
2011-09-02 Gary Funck <gary@intrepid.com>
|
||||
|
||||
* opts.c (print_specific_help): Fix off-by-one compare in
|
||||
|
|
|
|||
|
|
@ -271,6 +271,8 @@ add_stack_var (tree decl)
|
|||
if (v->size == 0)
|
||||
v->size = 1;
|
||||
v->alignb = align_local_variable (SSAVAR (decl));
|
||||
/* An alignment of zero can mightily confuse us later. */
|
||||
gcc_assert (v->alignb != 0);
|
||||
|
||||
/* All variables are initially in their own partition. */
|
||||
v->representative = stack_vars_num;
|
||||
|
|
|
|||
|
|
@ -1708,8 +1708,6 @@ fold_builtin_alloca_for_var (gimple stmt)
|
|||
return NULL_TREE;
|
||||
|
||||
size = TREE_INT_CST_LOW (arg);
|
||||
if (size == 0)
|
||||
return NULL_TREE;
|
||||
|
||||
/* Heuristic: don't fold large vlas. */
|
||||
threshold = (unsigned HOST_WIDE_INT)PARAM_VALUE (PARAM_LARGE_STACK_FRAME);
|
||||
|
|
@ -1726,6 +1724,8 @@ fold_builtin_alloca_for_var (gimple stmt)
|
|||
elem_type = build_nonstandard_integer_type (BITS_PER_UNIT, 1);
|
||||
n_elem = size * 8 / BITS_PER_UNIT;
|
||||
align = MIN (size * 8, BIGGEST_ALIGNMENT);
|
||||
if (align < BITS_PER_UNIT)
|
||||
align = BITS_PER_UNIT;
|
||||
array_type = build_array_type_nelts (elem_type, n_elem);
|
||||
var = create_tmp_var (array_type, NULL);
|
||||
DECL_ALIGN (var) = align;
|
||||
|
|
|
|||
Loading…
Reference in New Issue