aboutsummaryrefslogtreecommitdiff
path: root/gcc/builtins.c
diff options
context:
space:
mode:
authorRichard Guenther <rguenther@suse.de>2007-09-06 16:05:32 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2007-09-06 16:05:32 +0000
commit111f1fca4d2d4e4fabf92b39c4310a3add21f29a (patch)
treed2016ac58e23a030401a505f77d9f7a08ae0c9d2 /gcc/builtins.c
parent1f5a6b84ab344b601da7284a588de810c3c53451 (diff)
downloadgcc-111f1fca4d2d4e4fabf92b39c4310a3add21f29a.zip
gcc-111f1fca4d2d4e4fabf92b39c4310a3add21f29a.tar.gz
gcc-111f1fca4d2d4e4fabf92b39c4310a3add21f29a.tar.bz2
re PR tree-optimization/32586 (New VN misses FRE opportunities)
2007-09-06 Richard Guenther <rguenther@suse.de> PR tree-optimization/32586 * tree-ssa-sccvn.c (simplify_binary_expression): Avoid folding if nothing changed. (simplify_unary_expression): New function. Do tree combining on conversion like codes. (try_to_simplify): Call it. * builtins.c (fold_builtin_cexp): Fold the built expressions. * fold-const.c (fold_unary): Test result of get_callee_fndecl(). * g++.dg/tree-ssa/pr27090.C: Remove XFAILs. * gcc.dg/tree-ssa/ssa-fre-1.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-3.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-5.c: Likewise. * gcc.dg/tree-ssa/ssa-fre-4.c: Likewise, remove scan for now obsolete simplification. From-SVN: r128189
Diffstat (limited to 'gcc/builtins.c')
-rw-r--r--gcc/builtins.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/gcc/builtins.c b/gcc/builtins.c
index 566e1cc..a0b1e2f 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -7799,13 +7799,13 @@ fold_builtin_cexp (tree arg0, tree type)
icall = builtin_save_expr (icall);
rcall = build_call_expr (rfn, 1, realp);
rcall = builtin_save_expr (rcall);
- return build2 (COMPLEX_EXPR, type,
- build2 (MULT_EXPR, rtype,
- rcall,
- build1 (REALPART_EXPR, rtype, icall)),
- build2 (MULT_EXPR, rtype,
- rcall,
- build1 (IMAGPART_EXPR, rtype, icall)));
+ return fold_build2 (COMPLEX_EXPR, type,
+ fold_build2 (MULT_EXPR, rtype,
+ rcall,
+ fold_build1 (REALPART_EXPR, rtype, icall)),
+ fold_build2 (MULT_EXPR, rtype,
+ rcall,
+ fold_build1 (IMAGPART_EXPR, rtype, icall)));
}
return NULL_TREE;