[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