aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-pre.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2013-01-04 13:28:53 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2013-01-04 13:28:53 +0000
commit361618ec53c981befde38b89365712c7ebe65abb (patch)
tree961da44b194c088f5265f8dc8af40b304e171827 /gcc/tree-ssa-pre.c
parent87eab55418a76e2912b8b2d1e1acb0f37c137017 (diff)
downloadgcc-361618ec53c981befde38b89365712c7ebe65abb.zip
gcc-361618ec53c981befde38b89365712c7ebe65abb.tar.gz
gcc-361618ec53c981befde38b89365712c7ebe65abb.tar.bz2
re PR tree-optimization/55862 (ICE in compute_antic, at tree-ssa-pre.c:2495)
2013-01-04 Richard Biener <rguenther@suse.de> PR tree-optimization/55862 * tree-ssa-pre.c (phi_translate_1): Valueize SSA names after translating them through PHI nodes. * gcc.dg/torture/pr55862.c: New testcase. From-SVN: r194906
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 9c72f33..ed89738 100644
--- a/gcc/tree-ssa-pre.c
+++ b/gcc/tree-ssa-pre.c
@@ -1729,6 +1729,10 @@ phi_translate_1 (pre_expr expr, bitmap_set_t set1, bitmap_set_t set2,
edge e = find_edge (pred, gimple_bb (def_stmt));
tree def = PHI_ARG_DEF (def_stmt, e->dest_idx);
+ /* Valueize it. */
+ if (TREE_CODE (def) == SSA_NAME)
+ def = VN_INFO (def)->valnum;
+
/* Handle constant. */
if (is_gimple_min_invariant (def))
return get_or_alloc_expr_for_constant (def);