summaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-pre.c
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2005-06-19 06:32:31 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2005-06-19 06:32:31 +0000
commita3152c31e8466783765f476956a7653ff2d002e5 (patch)
treeaace88511c766aed127001b3380bf080e98f0a29 /gcc/tree-ssa-pre.c
parentf141bcd58e74207468822ddc51c5d5d14037c50e (diff)
downloadgcc-a3152c31e8466783765f476956a7653ff2d002e5.tar.gz
PR tree-opt/22116
* tree-ssa-pre.c (create_expression_by_pieces): Set DECL_COMPLEX_GIMPLE_REG_P. (insert_into_preds_of_block): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@101177 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/tree-ssa-pre.c')
-rw-r--r--gcc/tree-ssa-pre.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c
index 6ec3cdc194b..a46c367d34b 100644
--- a/gcc/tree-ssa-pre.c
+++ b/gcc/tree-ssa-pre.c
@@ -1593,6 +1593,8 @@ create_expression_by_pieces (basic_block block, tree expr, tree stmts)
that we will return. */
temp = create_tmp_var (TREE_TYPE (expr), "pretmp");
add_referenced_tmp_var (temp);
+ if (TREE_CODE (TREE_TYPE (expr)) == COMPLEX_TYPE)
+ DECL_COMPLEX_GIMPLE_REG_P (temp) = 1;
newexpr = build (MODIFY_EXPR, TREE_TYPE (expr), temp, newexpr);
name = make_ssa_name (temp, newexpr);
TREE_OPERAND (newexpr, 0) = name;
@@ -1699,6 +1701,8 @@ insert_into_preds_of_block (basic_block block, value_set_node_t node,
/* Now build a phi for the new variable. */
temp = create_tmp_var (type, tmpname);
add_referenced_tmp_var (temp);
+ if (TREE_CODE (type) == COMPLEX_TYPE)
+ DECL_COMPLEX_GIMPLE_REG_P (temp) = 1;
temp = create_phi_node (temp, block);
NECESSARY (temp) = 0;
VEC_safe_push (tree, heap, inserted_exprs, temp);