aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-ccp.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2015-01-29 13:50:37 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2015-01-29 13:50:37 +0000
commitd94e3e750d1e5c2fc9ecc8e8a32adec33fc85f8e (patch)
tree9bc44a875566081bd8465765ea38024d21452464 /gcc/tree-ssa-ccp.c
parent16277100d305948fa6d6fb5a4a318d9728c2400f (diff)
downloadgcc-d94e3e750d1e5c2fc9ecc8e8a32adec33fc85f8e.zip
gcc-d94e3e750d1e5c2fc9ecc8e8a32adec33fc85f8e.tar.gz
gcc-d94e3e750d1e5c2fc9ecc8e8a32adec33fc85f8e.tar.bz2
re PR tree-optimization/64853 (wrong code at -Os and above on x86_64-linux-gnu)
2015-01-29 Richard Biener <rguenther@suse.de> PR tree-optimization/64853 * tree-vrp.c (vrp_valueize_1): Do not return anything if the stmt will get simulated again. * tree-ssa-ccp.c (valueize_op_1): Likewise. * gcc.dg/torture/pr64853.c: New testcase. From-SVN: r220247
Diffstat (limited to 'gcc/tree-ssa-ccp.c')
-rw-r--r--gcc/tree-ssa-ccp.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c
index 43336fa..a576bd1 100644
--- a/gcc/tree-ssa-ccp.c
+++ b/gcc/tree-ssa-ccp.c
@@ -1141,15 +1141,15 @@ valueize_op_1 (tree op)
{
if (TREE_CODE (op) == SSA_NAME)
{
- tree tem = get_constant_value (op);
- if (tem)
- return tem;
/* If the definition may be simulated again we cannot follow
this SSA edge as the SSA propagator does not necessarily
re-visit the use. */
gimple def_stmt = SSA_NAME_DEF_STMT (op);
if (prop_simulate_again_p (def_stmt))
return NULL_TREE;
+ tree tem = get_constant_value (op);
+ if (tem)
+ return tem;
}
return op;
}