From 4636b850f65b40e23bb6f6c7db00adfdab2602da Mon Sep 17 00:00:00 2001 From: Richard Guenther Date: Sat, 2 May 2009 17:49:32 +0000 Subject: re PR regression/40001 (r146817 broke libgloss build for SPU) 2009-05-02 Richard Guenther PR middle-end/40001 * tree-ssa.c (execute_update_addresses_taken): Properly check if we can mark a variable DECL_GIMPLE_REG_P. * gimple.c (is_gimple_reg): Re-order check for DECL_GIMPLE_REG_P back to the end of the function. (is_gimple_reg_type): Remove complex type special casing. * gimplify.c (gimplify_bind_expr): Do not set DECL_GIMPLE_REG_P if not optimizing. * gcc.target/spu/pr40001.c: New testcase. From-SVN: r147064 --- gcc/tree-ssa.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'gcc/tree-ssa.c') diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c index ddf5202..edbae39 100644 --- a/gcc/tree-ssa.c +++ b/gcc/tree-ssa.c @@ -1573,7 +1573,9 @@ execute_update_addresses_taken (bool do_optimize) if (!DECL_GIMPLE_REG_P (var) && !bitmap_bit_p (not_reg_needs, DECL_UID (var)) && (TREE_CODE (TREE_TYPE (var)) == COMPLEX_TYPE - || TREE_CODE (TREE_TYPE (var)) == VECTOR_TYPE)) + || TREE_CODE (TREE_TYPE (var)) == VECTOR_TYPE) + && !TREE_THIS_VOLATILE (var) + && (TREE_CODE (var) != VAR_DECL || !DECL_HARD_REGISTER (var))) { DECL_GIMPLE_REG_P (var) = 1; mark_sym_for_renaming (var); -- cgit v1.1