rs6000: add option -mblock-ops-unaligned-vsx
authorAaron Sawdey <acsawdey@linux.ibm.com>
Fri, 24 Jul 2020 19:13:48 +0000 (14:13 -0500)
committerAaron Sawdey <acsawdey@linux.ibm.com>
Sun, 26 Jul 2020 17:11:47 +0000 (12:11 -0500)
commite398fcb9ce8eed5df3bc3ef1549450979028230f
tree15058516103eefde9fa42b52cdfd26b8ba03fa19
parent2e764ae1d666002b136726e6548481013527197d
rs6000: add option -mblock-ops-unaligned-vsx

This option is mostly being added to provide -mno-block-ops-unaligned-vsx.
The default is set the same as -mefficient-unaligned-vsx. This option will
control the use of unaligned VSX loads/stores in the inline expansion
of memcpy() and memmove(). The use case for this would be if you're
compiling code that is doing a memcpy to memory mapped device memory
that is cache-inhibited. On some powerpc processors this requires the
unaligned vsx ops to be emulated by the kernel which is very slow.

gcc/ChangeLog:

* config/rs6000/rs6000.c (rs6000_option_override_internal):
Set the default value for -mblock-ops-unaligned-vsx.
* config/rs6000/rs6000.opt: Add -mblock-ops-unaligned-vsx.
* doc/invoke.texi: Document -mblock-ops-unaligned-vsx.
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.opt
gcc/doc/invoke.texi