On 13/01/2022 14:56, Christophe Lyon via Gcc-patches wrote:
VPR_REG is the only register in its class, so it should be handled by
TARGET_CLASS_LIKELY_SPILLED_P, which is achieved by calling
default_class_likely_spilled_p. No test fails without this patch, but
it seems it should be implemented.
2022-01-13 Christophe Lyon <christophe.l...@foss.st.com>
gcc/
* config/arm/arm.c (arm_class_likely_spilled_p): Handle VPR_REG.
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index c3559ca8703..64a8f2dc7de 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -29317,7 +29317,7 @@ arm_class_likely_spilled_p (reg_class_t rclass)
|| rclass == CC_REG)
return true;
- return false;
+ return default_class_likely_spilled_p (rclass);
}
/* Implements target hook small_register_classes_for_mode_p. */
LGTM, but await reviewer approval. I suspect this would help avoiding
spilling of other special registers, though I'm not sure we codegen any
enough to make a difference, which is why it is likely to have no effect
on anything else.