Commit aad97b9b by Richard Henderson Committed by Richard Henderson

re PR tree-optimization/22116 (PRE of COMPLEX_EXPR causes ICE)

        PR tree-opt/22116
        * tree-ssa-pre.c (create_expression_by_pieces): Set
        DECL_COMPLEX_GIMPLE_REG_P.
        (insert_into_preds_of_block): Likewise.

From-SVN: r101177
parent 0f3a219b
2005-06-18 Richard Henderson <rth@redhat.com>
PR tree-opt/22116
* tree-ssa-pre.c (create_expression_by_pieces): Set
DECL_COMPLEX_GIMPLE_REG_P.
(insert_into_preds_of_block): Likewise.
2005-06-18 Steven Bosscher <stevenb@suse.de>
* Makefile.in: Fix tree-cfgcleanup.c dependencies.
......
/* PR 22116 */
void g(_Complex float);
_Complex float f(int data, _Complex float x, _Complex float y)
{
_Complex float i, t;
if (data)
{
i = x + __imag__ y;
g(i);
}
else
i = 5;
t = x + __imag__ y;
g(t);
return t * i;
}
......@@ -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);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment