From cc5999c8e32f0d2ba7c73e1ec372b614064b7066 Mon Sep 17 00:00:00 2001 From: Richard Biener Date: Thu, 28 Apr 2016 07:55:33 +0000 Subject: [PATCH] re PR tree-optimization/70777 (x*x pessimised to pow(x,2) with -Og -ffast-math) 2016-04-28 Richard Biener PR middle-end/70777 * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0) canonicalization. From-SVN: r235545 --- gcc/ChangeLog | 6 ++++++ gcc/fold-const.c | 18 ------------------ 2 files changed, 6 insertions(+), 18 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4f30dd3587f..face26bdced 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2016-04-28 Richard Biener + + PR middle-end/70777 + * fold-const.c (fold_binary_loc): Remove x*x to pow(x,2.0) + canonicalization. + 2016-04-28 Oleg Endo * common/config/sh/sh-common.c: Remove SH5 support. diff --git a/gcc/fold-const.c b/gcc/fold-const.c index 7fc23c6c3d5..96d8484c1eb 100644 --- a/gcc/fold-const.c +++ b/gcc/fold-const.c @@ -10033,24 +10033,6 @@ fold_binary_loc (location_t loc, && TREE_CODE (arg1) == CONJ_EXPR && operand_equal_p (arg0, TREE_OPERAND (arg1, 0), 0)) return fold_mult_zconjz (loc, type, arg0); - - if (flag_unsafe_math_optimizations) - { - - /* Canonicalize x*x as pow(x,2.0), which is expanded as x*x. */ - if (!in_gimple_form - && optimize - && operand_equal_p (arg0, arg1, 0)) - { - tree powfn = mathfn_built_in (type, BUILT_IN_POW); - - if (powfn) - { - tree arg = build_real (type, dconst2); - return build_call_expr_loc (loc, powfn, 2, arg0, arg); - } - } - } } goto associate; -- 2.30.2