[gcc r13-813] Fix ICE on sh
Jeff Law
law@gcc.gnu.org
Sat May 28 18:14:55 GMT 2022
https://gcc.gnu.org/g:ce1580252ea57de23a595e9804ea87ed4353aa6a
commit r13-813-gce1580252ea57de23a595e9804ea87ed4353aa6a
Author: Vladimir Makarov <vmakarov@gcc.gnu.org>
Date: Sat May 28 12:08:38 2022 -0600
Fix ICE on sh
gcc/
PR target/103722
* config/sh/sh.cc (sh_register_move_cost): Avoid cost "2" (which
is special) for various scenarios.
Diff:
---
gcc/config/sh/sh.cc | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/gcc/config/sh/sh.cc b/gcc/config/sh/sh.cc
index 8d4056338a5..03e1c04ec7e 100644
--- a/gcc/config/sh/sh.cc
+++ b/gcc/config/sh/sh.cc
@@ -10762,6 +10762,12 @@ sh_register_move_cost (machine_mode mode,
&& ! REGCLASS_HAS_GENERAL_REG (dstclass))
return 2 * ((GET_MODE_SIZE (mode) + 7) / 8U);
+ if (((dstclass == FP_REGS || dstclass == DF_REGS)
+ && (srcclass == PR_REGS))
+ || ((srcclass == FP_REGS || srcclass == DF_REGS)
+ && (dstclass == PR_REGS)))
+ return 7;
+
return 2 * ((GET_MODE_SIZE (mode) + 3) / 4U);
}
More information about the Gcc-cvs
mailing list