diff options
author | Richard Biener <rguenther@suse.de> | 2014-06-05 09:53:19 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2014-06-05 09:53:19 +0000 |
commit | 947ca6a0c89e475c5ca53cd2a6c291dafab3d5bc (patch) | |
tree | 72a3bb0ab4a36d92cdef313a2eb27b8007f924cd /gcc/gimplify.c | |
parent | 8ffcdea85552836f18e4a7473fa1cea31feb3944 (diff) | |
download | gcc-947ca6a0c89e475c5ca53cd2a6c291dafab3d5bc.zip gcc-947ca6a0c89e475c5ca53cd2a6c291dafab3d5bc.tar.gz gcc-947ca6a0c89e475c5ca53cd2a6c291dafab3d5bc.tar.bz2 |
gimplify.c (create_tmp_from_val): Remove is_formal parameter and set DECL_GIMPLE_REG_P unconditionally if appropriate.
2014-06-05 Richard Biener <rguenther@suse.de>
* gimplify.c (create_tmp_from_val): Remove is_formal parameter
and set DECL_GIMPLE_REG_P unconditionally if appropriate.
(lookup_tmp_var): Adjust.
(prepare_gimple_addressable): Unset DECL_GIMPLE_REG_P here.
From-SVN: r211262
Diffstat (limited to 'gcc/gimplify.c')
-rw-r--r-- | gcc/gimplify.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/gcc/gimplify.c b/gcc/gimplify.c index 89ae41f..1635b96 100644 --- a/gcc/gimplify.c +++ b/gcc/gimplify.c @@ -451,14 +451,13 @@ is_gimple_mem_rhs_or_call (tree t) lookup_tmp_var; nobody else should call this function. */ static inline tree -create_tmp_from_val (tree val, bool is_formal) +create_tmp_from_val (tree val) { /* Drop all qualifiers and address-space information from the value type. */ tree type = TYPE_MAIN_VARIANT (TREE_TYPE (val)); tree var = create_tmp_var (type, get_name (val)); - if (is_formal - && (TREE_CODE (TREE_TYPE (var)) == COMPLEX_TYPE - || TREE_CODE (TREE_TYPE (var)) == VECTOR_TYPE)) + if (TREE_CODE (TREE_TYPE (var)) == COMPLEX_TYPE + || TREE_CODE (TREE_TYPE (var)) == VECTOR_TYPE) DECL_GIMPLE_REG_P (var) = 1; return var; } @@ -477,7 +476,7 @@ lookup_tmp_var (tree val, bool is_formal) work in reload and final and poorer code generation, outweighing the extra memory allocation here. */ if (!optimize || !is_formal || TREE_SIDE_EFFECTS (val)) - ret = create_tmp_from_val (val, is_formal); + ret = create_tmp_from_val (val); else { elt_t elt, *elt_p; @@ -491,7 +490,7 @@ lookup_tmp_var (tree val, bool is_formal) { elt_p = XNEW (elt_t); elt_p->val = val; - elt_p->temp = ret = create_tmp_from_val (val, is_formal); + elt_p->temp = ret = create_tmp_from_val (val); *slot = elt_p; } else @@ -3154,7 +3153,11 @@ prepare_gimple_addressable (tree *expr_p, gimple_seq *seq_p) while (handled_component_p (*expr_p)) expr_p = &TREE_OPERAND (*expr_p, 0); if (is_gimple_reg (*expr_p)) - *expr_p = get_initialized_tmp_var (*expr_p, seq_p, NULL); + { + tree var = get_initialized_tmp_var (*expr_p, seq_p, NULL); + DECL_GIMPLE_REG_P (var) = 0; + *expr_p = var; + } } /* A subroutine of gimplify_modify_expr. Replace a MODIFY_EXPR with |