aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Sawdey <acsawdey@linux.ibm.com>2020-09-10 15:12:49 -0500
committerAaron Sawdey <acsawdey@linux.ibm.com>2020-09-10 21:13:38 -0500
commit848e74bea1e8031925d3efe2d85b555a3cf8db38 (patch)
tree75d1adbbaaa9eea5f9c65bacf845401c830f4483
parentb7028f060c6760b336b416897412e327ded12ab5 (diff)
downloadgcc-848e74bea1e8031925d3efe2d85b555a3cf8db38.zip
gcc-848e74bea1e8031925d3efe2d85b555a3cf8db38.tar.gz
gcc-848e74bea1e8031925d3efe2d85b555a3cf8db38.tar.bz2
[PATCH][PR96791] disable POImode ld/st for memcpy
This is a (hopefully temporary) fix to PR96791. This will make the default be -mno-block-ops-vector-pair even on power10, so we will not hit the issue of DSE trying to truncate a POImode register. I am still concerned it will be possible to hit this because the MMA builtins will also generate POImode stores, but I think any example of that will be somewhat more contrived. gcc/ChangeLog: * config/rs6000/rs6000.c (rs6000_option_override_internal): Change default.
-rw-r--r--gcc/config/rs6000/rs6000.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index f6a3ff6..9908830 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -4020,10 +4020,11 @@ rs6000_option_override_internal (bool global_init_p)
if (!(rs6000_isa_flags_explicit & OPTION_MASK_BLOCK_OPS_VECTOR_PAIR))
{
- if (TARGET_MMA && TARGET_EFFICIENT_UNALIGNED_VSX)
- rs6000_isa_flags |= OPTION_MASK_BLOCK_OPS_VECTOR_PAIR;
- else
- rs6000_isa_flags &= ~OPTION_MASK_BLOCK_OPS_VECTOR_PAIR;
+ /* When the POImode issues of PR96791 are resolved, then we can
+ once again enable use of vector pair for memcpy/memmove on
+ P10 if we have TARGET_MMA. For now we make it disabled by
+ default for all targets. */
+ rs6000_isa_flags &= ~OPTION_MASK_BLOCK_OPS_VECTOR_PAIR;
}
/* Use long double size to select the appropriate long double. We use