This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH, i386]: Disable spills to vector registers
- From: Uros Bizjak <ubizjak at gmail dot com>
- To: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Cc: Vladimir Makarov <vmakarov at redhat dot com>, Jeff Law <law at redhat dot com>, kyukhin at gcc dot gnu dot org
- Date: Sun, 26 Jun 2016 23:03:05 +0200
- Subject: [PATCH, i386]: Disable spills to vector registers
- Authentication-results: sourceware.org; auth=none
Hello!
As shown by listed PRs, the spill-to-vector regs infrastructure is not
yet ready. And with no fix in sight, I have disabled it for x86
altogether.
2016-06-26 Uros Bizjak <ubizjak@gmail.com>
PR target/70902
PR target/71453
PR target/71555
PR target/71596
PR target/71657
* config/i386/i386.c (TARGET_SPILL_CLASS): #if 0 out the definition.
(ix86_spill_class): Disable to always return NO_REGS.
Uros.
Index: config/i386/i386.c
===================================================================
--- config/i386/i386.c (revision 237757)
+++ config/i386/i386.c (working copy)
@@ -54583,10 +54583,13 @@
/* Return class of registers which could be used for pseudo of MODE
and of class RCLASS for spilling instead of memory. Return NO_REGS
if it is not possible or non-profitable. */
+
+/* Disabled due to PRs 70902, 71453, 71555, 71596 and 71657. */
+
static reg_class_t
ix86_spill_class (reg_class_t rclass, machine_mode mode)
{
- if (TARGET_GENERAL_REGS_SSE_SPILL
+ if (0 && TARGET_GENERAL_REGS_SSE_SPILL
&& TARGET_SSE2
&& TARGET_INTER_UNIT_MOVES_TO_VEC
&& TARGET_INTER_UNIT_MOVES_FROM_VEC
@@ -55700,8 +55703,11 @@
#undef TARGET_LOOP_UNROLL_ADJUST
#define TARGET_LOOP_UNROLL_ADJUST ix86_loop_unroll_adjust
+#if 0
+/* Disabled due to PRs 70902, 71453, 71555, 71596 and 71657. */
#undef TARGET_SPILL_CLASS
#define TARGET_SPILL_CLASS ix86_spill_class
+#endif
#undef TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN
#define TARGET_SIMD_CLONE_COMPUTE_VECSIZE_AND_SIMDLEN \