From: Roger Sayle Date: Sat, 11 Oct 2003 13:53:39 +0000 (+0000) Subject: combine.c (apply_distributive_law): Enable "distributive" floating point optimization... X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=2981fafefcc843ed133c328e4f0f0187d661f186;p=gcc.git combine.c (apply_distributive_law): Enable "distributive" floating point optimizations with -funsafe-math-optimizations. * combine.c (apply_distributive_law): Enable "distributive" floating point optimizations with -funsafe-math-optimizations. From-SVN: r72334 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f24744b75b6..f5bec024a80 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2003-10-11 Roger Sayle + + * combine.c (apply_distributive_law): Enable "distributive" floating + point optimizations with -funsafe-math-optimizations. + 2003-10-11 Andrew Pinski * genmodes.c (emit_mode_mask) Change MASK to MODE_MASK. diff --git a/gcc/combine.c b/gcc/combine.c index 1ac2851d63c..0a65bf221a8 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -7791,14 +7791,14 @@ static rtx apply_distributive_law (rtx x) { enum rtx_code code = GET_CODE (x); + enum rtx_code inner_code; rtx lhs, rhs, other; rtx tem; - enum rtx_code inner_code; - /* Distributivity is not true for floating point. - It can change the value. So don't do it. - -- rms and moshier@world.std.com. */ - if (FLOAT_MODE_P (GET_MODE (x))) + /* Distributivity is not true for floating point as it can change the + value. So we don't do it unless -funsafe-math-optimizations. */ + if (FLOAT_MODE_P (GET_MODE (x)) + && ! flag_unsafe_math_optimizations) return x; /* The outer operation can only be one of the following: */ @@ -7806,7 +7806,8 @@ apply_distributive_law (rtx x) && code != PLUS && code != MINUS) return x; - lhs = XEXP (x, 0), rhs = XEXP (x, 1); + lhs = XEXP (x, 0); + rhs = XEXP (x, 1); /* If either operand is a primitive we can't do anything, so get out fast. */