aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.4.0/gcc/tree-ssa-sccvn.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.4.0/gcc/tree-ssa-sccvn.c')
-rw-r--r--gcc-4.4.0/gcc/tree-ssa-sccvn.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/gcc-4.4.0/gcc/tree-ssa-sccvn.c b/gcc-4.4.0/gcc/tree-ssa-sccvn.c
index 1b01cffdc..aa70b94d5 100644
--- a/gcc-4.4.0/gcc/tree-ssa-sccvn.c
+++ b/gcc-4.4.0/gcc/tree-ssa-sccvn.c
@@ -659,6 +659,8 @@ copy_reference_ops_from_ref (tree ref, VEC(vn_reference_op_s, heap) **result)
case CONST_DECL:
case RESULT_DECL:
case SSA_NAME:
+ case EXC_PTR_EXPR:
+ case FILTER_EXPR:
temp.op0 = ref;
break;
case ADDR_EXPR:
@@ -751,6 +753,8 @@ get_ref_from_reference_ops (VEC(vn_reference_op_s, heap) *ops)
case CONST_DECL:
case RESULT_DECL:
case SSA_NAME:
+ case FILTER_EXPR:
+ case EXC_PTR_EXPR:
*op0_p = op->op0;
break;
@@ -1293,7 +1297,7 @@ vn_nary_op_lookup_stmt (gimple stmt, vn_nary_op_t *vnresult)
*vnresult = NULL;
vno1.opcode = gimple_assign_rhs_code (stmt);
vno1.length = gimple_num_ops (stmt) - 1;
- vno1.type = TREE_TYPE (gimple_assign_lhs (stmt));
+ vno1.type = gimple_expr_type (stmt);
for (i = 0; i < vno1.length; ++i)
vno1.op[i] = gimple_op (stmt, i + 1);
if (vno1.opcode == REALPART_EXPR
@@ -1401,7 +1405,7 @@ vn_nary_op_insert_stmt (gimple stmt, tree result)
vno1->value_id = VN_INFO (result)->value_id;
vno1->opcode = gimple_assign_rhs_code (stmt);
vno1->length = length;
- vno1->type = TREE_TYPE (gimple_assign_lhs (stmt));
+ vno1->type = gimple_expr_type (stmt);
for (i = 0; i < vno1->length; ++i)
vno1->op[i] = gimple_op (stmt, i + 1);
if (vno1->opcode == REALPART_EXPR
@@ -2142,7 +2146,7 @@ simplify_binary_expression (gimple stmt)
fold_defer_overflow_warnings ();
result = fold_binary (gimple_assign_rhs_code (stmt),
- TREE_TYPE (gimple_get_lhs (stmt)), op0, op1);
+ gimple_expr_type (stmt), op0, op1);
if (result)
STRIP_USELESS_TYPE_CONVERSION (result);