aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>2021-03-30 16:42:17 +0100
committerKyrylo Tkachov <kyrylo.tkachov@arm.com>2021-03-30 16:42:17 +0100
commitc277abd9cd3d10db59f9965d7d6356868da42a9f (patch)
tree1dd805deee9967d66d476069a6c0edd32eebf95e /gcc
parent19199a6f2b0f4ce4b100856c78706d56a16b1956 (diff)
downloadgcc-c277abd9cd3d10db59f9965d7d6356868da42a9f.zip
gcc-c277abd9cd3d10db59f9965d7d6356868da42a9f.tar.gz
gcc-c277abd9cd3d10db59f9965d7d6356868da42a9f.tar.bz2
aarch64: PR target/99820: Guard on available SVE issue info before using
This fixes a simple segfault ICE when using the use_new_vector_costs tunable with a CPU tuning that it wasn't intended for. I'm not adding a testcase here as we intend to remove the tunable for GCC 12 anyway (the new costing logic will remain and will benefit from this extra check, but the -moverride option will no longer exist). gcc/ChangeLog: PR target/99820 * config/aarch64/aarch64.c (aarch64_analyze_loop_vinfo): Check for available issue_info before using it.
Diffstat (limited to 'gcc')
-rw-r--r--gcc/config/aarch64/aarch64.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index a573850..5eda9e8 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -14460,7 +14460,9 @@ aarch64_analyze_loop_vinfo (loop_vec_info loop_vinfo,
/* Record the issue information for any SVE WHILE instructions that the
loop needs. */
auto *issue_info = aarch64_tune_params.vec_costs->issue_info;
- if (issue_info->sve && !LOOP_VINFO_MASKS (loop_vinfo).is_empty ())
+ if (issue_info
+ && issue_info->sve
+ && !LOOP_VINFO_MASKS (loop_vinfo).is_empty ())
{
unsigned int num_masks = 0;
rgroup_controls *rgm;