aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-pre.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2008-09-22 19:15:43 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2008-09-22 19:15:43 +0000
commitecb4e37b73d7649a447fe63f33dc20826fce0bb6 (patch)
tree011ef08c0c1e906fc44e085fd10886019e133ce7 /gcc/tree-ssa-pre.c
parent880f8ea3bd9ca8e4d1acf5083760da66b05fea59 (diff)
downloadgcc-ecb4e37b73d7649a447fe63f33dc20826fce0bb6.zip
gcc-ecb4e37b73d7649a447fe63f33dc20826fce0bb6.tar.gz
gcc-ecb4e37b73d7649a447fe63f33dc20826fce0bb6.tar.bz2
re PR tree-optimization/37145 (XFAILs from PRE rewrite, SCCVN union optimization disabled)
2008-09-22 Richard Guenther <rguenther@suse.de> PR tree-optimization/37145 * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Re-enable value-numbering union accesses with their offset and size only. (visit_reference_op_load): Fix simplification of inserted conversions. * tree-ssa-pre.c (find_or_generate_expression): Do not recursively generate expressions if running FRE. * gcc.c-torture/compile/20080922-1.c: New testcase. * gcc.dg/tree-ssa/ssa-fre-7.c: Remove XFAIL. * gcc.dg/tree-ssa/ssa-fre-8.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-9.c: Likewise. From-SVN: r140562
Diffstat (limited to 'gcc/tree-ssa-pre.c')
-rw-r--r--gcc/tree-ssa-pre.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c
index dd61349..cd344af 100644
--- a/gcc/tree-ssa-pre.c
+++ b/gcc/tree-ssa-pre.c
@@ -2730,8 +2730,9 @@ find_or_generate_expression (basic_block block, pre_expr expr,
}
/* If it's still NULL, it must be a complex expression, so generate
- it recursively. */
- if (genop == NULL)
+ it recursively. Not so for FRE though. */
+ if (genop == NULL
+ && !in_fre)
{
bitmap_set_t exprset;
unsigned int lookfor = get_expr_value_id (expr);