From 8112612670aa76350a0bebb09ca12c1bdcc1e8a7 Mon Sep 17 00:00:00 2001 From: Richard Guenther Date: Mon, 19 Jun 2006 19:48:04 +0000 Subject: [PATCH] tree-ssa-pre.c (try_combine_conversion): Strip useless type conversions after folding. 2006-06-19 Richard Guenther * tree-ssa-pre.c (try_combine_conversion): Strip useless type conversions after folding. From-SVN: r114784 --- gcc/ChangeLog | 5 +++++ gcc/tree-ssa-pre.c | 11 ++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 50d8902a715..81535ec9884 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2006-06-19 Richard Guenther + + * tree-ssa-pre.c (try_combine_conversion): Strip useless + type conversions after folding. + 2006-06-19 Richard Guenther * ggc-page.c (extra_order_size_tab): Add entries with diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c index 7ae481b2b7a..54c6eb355fd 100644 --- a/gcc/tree-ssa-pre.c +++ b/gcc/tree-ssa-pre.c @@ -3330,12 +3330,17 @@ try_combine_conversion (tree *expr_p) t = fold_unary (TREE_CODE (expr), TREE_TYPE (expr), VALUE_HANDLE_EXPR_SET (TREE_OPERAND (expr, 0))->head->expr); + if (!t) + return false; + + /* Strip useless type conversions, which is safe in the optimizers but + not generally in fold. */ + STRIP_USELESS_TYPE_CONVERSION (t); /* Disallow value expressions we have no value number for already, as we would miss a leader for it here. */ - if (t - && !(TREE_CODE (t) == VALUE_HANDLE - || is_gimple_min_invariant (t))) + if (!(TREE_CODE (t) == VALUE_HANDLE + || is_gimple_min_invariant (t))) t = vn_lookup (t, NULL); if (t && t != expr) -- 2.30.2