aboutsummaryrefslogtreecommitdiff
path: root/gcc/ChangeLog
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@arm.com>2016-11-16 14:20:40 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2016-11-16 14:20:40 +0000
commitae1a0866a17b854623ec824224ad68a3db571b43 (patch)
tree0bcd5914eb382b11bba28bec7e24f2bbc32e6aa4 /gcc/ChangeLog
parent0c012e9bf7a7c16283091714f18f8aa3633d89b6 (diff)
downloadgcc-ae1a0866a17b854623ec824224ad68a3db571b43.zip
gcc-ae1a0866a17b854623ec824224ad68a3db571b43.tar.gz
gcc-ae1a0866a17b854623ec824224ad68a3db571b43.tar.bz2
An alternative fix for PR70944
The transformations made by make_compound_operation apply only to scalar integer modes. The fix for PR70944 had enforced that by returning early for vector modes at the top of the function. However, the function is supposed to be recursive, so we should continue to look at integer suboperands even if the outer operation is a vector one. This patch instead splits out the non-recursive parts of make_compound_operation into a subroutine and checks that the mode is a scalar integer before calling it. The patch was originally written to help with the later conversion to static type checking of mode classes, but it also happened to reenable optimisation of things like vec_duplicate operands. Note that the gen_lowparts in the PLUS and MINUS cases were redundant, since new_rtx already had mode "mode" at those points. gcc/ 2016-11-15 Richard Sandiford <richard.sandiford@arm.com> Alan Hayward <alan.hayward@arm.com> David Sherwood <david.sherwood@arm.com> * combine.c (maybe_swap_commutative_operands): New function. (combine_simplify_rtx): Use it. (change_zero_ext): Likewise. (make_compound_operation_int): New function, split out of... (make_compound_operation): ...here. Use maybe_swap_commutative_operands for both. Co-Authored-By: Alan Hayward <alan.hayward@arm.com> Co-Authored-By: David Sherwood <david.sherwood@arm.com> From-SVN: r242492
Diffstat (limited to 'gcc/ChangeLog')
-rw-r--r--gcc/ChangeLog11
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 205afa8..722b94b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,14 @@
+2016-11-16 Richard Sandiford <richard.sandiford@arm.com>
+ Alan Hayward <alan.hayward@arm.com>
+ David Sherwood <david.sherwood@arm.com>
+
+ * combine.c (maybe_swap_commutative_operands): New function.
+ (combine_simplify_rtx): Use it.
+ (change_zero_ext): Likewise.
+ (make_compound_operation_int): New function, split out of...
+ (make_compound_operation): ...here. Use
+ maybe_swap_commutative_operands for both.
+
2016-11-16 Richard Earnshaw <rearnsha@arm.com>
* arm/arm-fpus.def (vfpv2): New FPU, currently an alias for 'vfp'.