aboutsummaryrefslogtreecommitdiff
path: root/gcc/genmatch.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2014-11-09 11:27:00 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2014-11-09 11:27:00 +0000
commit1e51d0a29dbfebe6c0df58739562644c1a50f3c3 (patch)
tree7253af53d7de307a8f840ca8e90e5e0acc5fa293 /gcc/genmatch.c
parent8dcd07febcafc7fd8a62d86f88aca1f6724f8a24 (diff)
downloadgcc-1e51d0a29dbfebe6c0df58739562644c1a50f3c3.zip
gcc-1e51d0a29dbfebe6c0df58739562644c1a50f3c3.tar.gz
gcc-1e51d0a29dbfebe6c0df58739562644c1a50f3c3.tar.bz2
match.pd: Add patterns convering two conversions in a row from fold-const.c.
2014-11-09 Richard Biener <rguenther@suse.de> * match.pd: Add patterns convering two conversions in a row from fold-const.c. * fold-const.c (fold_unary_loc): Remove them here. * tree-ssa-forwprop.c (combine_conversions): Likewise. * genmatch.c (dt_node::gen_kids): Check whether we may follow SSA use-def chains. * g++.dg/cpp0x/constexpr-reinterpret1.C: XFAIL. * gcc.dg/tree-ssa/pr21031.c: XFAIL. From-SVN: r217260
Diffstat (limited to 'gcc/genmatch.c')
-rw-r--r--gcc/genmatch.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/genmatch.c b/gcc/genmatch.c
index e01f7b3..723de19 100644
--- a/gcc/genmatch.c
+++ b/gcc/genmatch.c
@@ -1615,7 +1615,7 @@ dt_operand::gen_gimple_expr (FILE *f)
else
fprintf (f, "tree %s = gimple_call_arg (def_stmt, %u);\n",
child_opname, i);
- fprintf (f, "if ((%s = do_valueize (valueize, %s)) != 0)\n",
+ fprintf (f, "if ((%s = do_valueize (valueize, %s)))\n",
child_opname, child_opname);
fprintf (f, "{\n");
}
@@ -1726,6 +1726,7 @@ dt_node::gen_kids (FILE *f, bool gimple)
if (exprs_len || fns_len)
{
fprintf (f, "case SSA_NAME:\n");
+ fprintf (f, "if (do_valueize (valueize, %s) != NULL_TREE)\n", kid_opname);
fprintf (f, "{\n");
fprintf (f, "gimple def_stmt = SSA_NAME_DEF_STMT (%s);\n", kid_opname);