Hi all,

Second version of this addressing comments.

Bootstraped on aarch64 and regressioned.  Okay for trunk?

Andrea

gcc/ChangeLog

2020-??-??  Andrea Corallo  <andrea.cora...@arm.com>

        * config/aarch64/falkor-tag-collision-avoidance.c
        (valid_src_p): Check for aarch64_address_info type before
        accessing base field.
diff --git a/gcc/config/aarch64/falkor-tag-collision-avoidance.c b/gcc/config/aarch64/falkor-tag-collision-avoidance.c
index f850153fae02..a96a3320e8fc 100644
--- a/gcc/config/aarch64/falkor-tag-collision-avoidance.c
+++ b/gcc/config/aarch64/falkor-tag-collision-avoidance.c
@@ -538,7 +538,11 @@ valid_src_p (rtx src, rtx_insn *insn, struct loop *loop, bool *pre_post,
   if (!aarch64_classify_address (&addr, XEXP (x, 0), mode, true))
     return false;
 
-  if (!REG_P (addr.base))
+  if (addr.type != ADDRESS_REG_IMM
+      && addr.type != ADDRESS_REG_WB
+      && addr.type != ADDRESS_REG_REG
+      && addr.type != ADDRESS_REG_UXTW
+      && addr.type != ADDRESS_REG_SXTW)
     return false;
 
   unsigned regno = REGNO (addr.base);

Reply via email to