From 15d5fe337ee87efb5aaa8b65aeb44cb672d4be5a Mon Sep 17 00:00:00 2001 From: Daniel Berlin Date: Mon, 20 Oct 2008 21:23:22 +0000 Subject: [PATCH] tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant part of expression. 2008-10-20 Daniel Berlin * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant part of expression. From-SVN: r141249 --- gcc/ChangeLog | 5 +++++ gcc/tree-ssa-pre.c | 14 +++----------- 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a7f733f11347..ce553c6bf83f 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2008-10-20 Daniel Berlin + + * tree-ssa-pre.c (insert_into_preds_of_block): Don't rewrite constant + part of expression. + 2008-10-20 Tobias Schlüter * doc/install.texi: Fix typos in previous patch. diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c index f57500e62ace..dc576c5a3d7d 100644 --- a/gcc/tree-ssa-pre.c +++ b/gcc/tree-ssa-pre.c @@ -3019,23 +3019,15 @@ insert_into_preds_of_block (basic_block block, unsigned int exprnum, should give us back a constant with the right type. */ tree constant = PRE_EXPR_CONSTANT (eprime); - if (TREE_TYPE (constant) != type) + if (!useless_type_conversion_p (type, TREE_TYPE (constant))) { tree builtexpr = fold_convert (type, constant); - if (is_gimple_min_invariant (builtexpr)) - { - PRE_EXPR_CONSTANT (eprime) = builtexpr; - } - else + if (!is_gimple_min_invariant (builtexpr)) { tree forcedexpr = force_gimple_operand (builtexpr, &stmts, true, NULL); - if (is_gimple_min_invariant (forcedexpr)) - { - PRE_EXPR_CONSTANT (eprime) = forcedexpr; - } - else + if (!is_gimple_min_invariant (forcedexpr)) { if (forcedexpr != builtexpr) { -- 2.47.3