[PATCH, rs6000] Backport some swap optimization improvements

Segher Boessenkool segher@kernel.crashing.org
Fri May 5 13:19:00 GMT 2017


Hi!

On Thu, Apr 28, 2016 at 08:28:55PM -0500, Bill Schmidt wrote:
> The lack of certain swap optimizations added in GCC 6 has shown up as a
> performance issue in some customer code, where the customer is unable to
> move off of GCC 5.  To accommodate this, I would like to backport these
> changes to GCC 5.  They have all been burned in on trunk for many
> months.  The same code has also been provided in
> branches/ibm/gcc-5-branch since early this year, used to build code in
> Ubuntu 16.04 and included in the latest AT9.0 releases.  I feel that it
> is therefore pretty solid at this point.
> 
> Bootstrapped and tested on powerpc64le-unknown-linux-gnu with no
> regressions.  Is this ok for GCC 5.4?

I never replied to this?  Sorry about that.  The patch is okay for
the 5 branch, if you still want it.


Segher


> 2016-04-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
> 
> 	PR target/69868 + swap optimization backports
> 	* config/rs6000/rs6000.c (swap_web_entry): Enlarge
> 	special_handling bitfield.
> 	(special_handling_values): Add SH_XXPERMDI, SH_CONCAT, SH_VPERM,
> 	and SH_VPERM_COMP.
> 	(const_load_sequence_p): New.
> 	(load_comp_mask_p): New.
> 	(v2df_reduction_p): New.
> 	(rtx_is_swappable_p): Perform special handling for XXPERMDI and
> 	for reductions.
> 	(insn_is_swappable_p): Perform special handling for VEC_CONCAT,
> 	V2DF reductions, and various permutes.
> 	(adjust_xxpermdi): New.
> 	(adjust_concat): New.
> 	(find_swapped_load_and_const_vector): New.
> 	(replace_const_vector_in_load): New.
> 	(adjust_vperm): New.
> 	(adjust_vperm_comp): New.
> 	(handle_special_swappables): Call adjust_xxpermdi, adjust_concat,
> 	adjust_vperm, and adjust_vperm_comp.
> 	(replace_swap_with_copy): Allow vector NOT operations to also be
> 	replaced by copies.
> 	(dump_swap_insn_table): Handle new special handling values.
> 
> [gcc/testsuite]
> 
> 2016-04-28  Bill Schmidt  <wschmidt@linux.vnet.ibm.com>
> 
> 	PR target/69868 + swap optimization backports
> 	* gcc.target/powerpc/swaps-p8-20.c: New.
> 	* gcc.target/powerpc/swaps-p8-22.c: New.
> 	* gcc.target/powerpc/swaps-p8-23.c: New.
> 	* gcc.target/powerpc/swaps-p8-24.c: New.



More information about the Gcc-patches mailing list