aarch64: PR target/99820: Guard on available SVE issue info before using
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Tue, 30 Mar 2021 15:42:17 +0000 (16:42 +0100)
committerKyrylo Tkachov <kyrylo.tkachov@arm.com>
Tue, 30 Mar 2021 15:42:17 +0000 (16:42 +0100)
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.

gcc/config/aarch64/aarch64.c

index a573850..5eda9e8 100644 (file)
@@ -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;