Commit 8d1341f7 by Eric Botcazou Committed by Eric Botcazou

re PR tree-optimization/32705 (ICE in set_ssa_val_to, at tree-ssa-sccvn.c:1022)

	PR tree-optimization/32705
	* tree-ssa-sccvn.c (set_ssa_val_to): Accept VN_TOP as value number.
	(simplify_binary_expression): Use SSA_VAL consistently.

From-SVN: r126637
parent 5de7f07c
2007-07-14 Eric Botcazou <ebotcazou@adacore.com>
PR tree-optimization/32705
* tree-ssa-sccvn.c (set_ssa_val_to): Accept VN_TOP as value number.
(simplify_binary_expression): Use SSA_VAL consistently.
2007-07-13 David Edelsohn <edelsohn@gnu.org> 2007-07-13 David Edelsohn <edelsohn@gnu.org>
* config/rs6000/spe.md (SPE_ACC_REGNO): Delete definition. * config/rs6000/spe.md (SPE_ACC_REGNO): Delete definition.
......
...@@ -1017,11 +1017,13 @@ static inline bool ...@@ -1017,11 +1017,13 @@ static inline bool
set_ssa_val_to (tree from, tree to) set_ssa_val_to (tree from, tree to)
{ {
tree currval; tree currval;
gcc_assert (to != NULL);
/* The only thing we allow as value numbers are ssa_names and /* The only thing we allow as value numbers are VN_TOP, ssa_names
invariants. So assert that here. */ and invariants. So assert that here. */
gcc_assert (TREE_CODE (to) == SSA_NAME || is_gimple_min_invariant (to)); gcc_assert (to != NULL_TREE
&& (to == VN_TOP
|| TREE_CODE (to) == SSA_NAME
|| is_gimple_min_invariant (to)));
if (dump_file && (dump_flags & TDF_DETAILS)) if (dump_file && (dump_flags & TDF_DETAILS))
{ {
...@@ -1389,7 +1391,7 @@ simplify_binary_expression (tree rhs) ...@@ -1389,7 +1391,7 @@ simplify_binary_expression (tree rhs)
if (VN_INFO (op0)->has_constants) if (VN_INFO (op0)->has_constants)
op0 = valueize_expr (VN_INFO (op0)->expr); op0 = valueize_expr (VN_INFO (op0)->expr);
else if (SSA_VAL (op0) != VN_TOP && SSA_VAL (op0) != op0) else if (SSA_VAL (op0) != VN_TOP && SSA_VAL (op0) != op0)
op0 = VN_INFO (op0)->valnum; op0 = SSA_VAL (op0);
} }
if (TREE_CODE (op1) == SSA_NAME) if (TREE_CODE (op1) == SSA_NAME)
...@@ -1397,7 +1399,7 @@ simplify_binary_expression (tree rhs) ...@@ -1397,7 +1399,7 @@ simplify_binary_expression (tree rhs)
if (VN_INFO (op1)->has_constants) if (VN_INFO (op1)->has_constants)
op1 = valueize_expr (VN_INFO (op1)->expr); op1 = valueize_expr (VN_INFO (op1)->expr);
else if (SSA_VAL (op1) != VN_TOP && SSA_VAL (op1) != op1) else if (SSA_VAL (op1) != VN_TOP && SSA_VAL (op1) != op1)
op1 = VN_INFO (op1)->valnum; op1 = SSA_VAL (op1);
} }
result = fold_binary (TREE_CODE (rhs), TREE_TYPE (rhs), op0, op1); result = fold_binary (TREE_CODE (rhs), TREE_TYPE (rhs), op0, op1);
......
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