This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: Bootstrap broken in libobjc/sendmsg.c
- From: Jan Hubicka <hubicka at ucw dot cz>
- To: Jan Hubicka <hubicka at ucw dot cz>
- Cc: Paolo Carlini <paolo dot carlini at oracle dot com>, "'gcc at gcc dot gnu dot org'" <gcc at gcc dot gnu dot org>
- Date: Fri, 6 Sep 2013 14:38:01 +0200
- Subject: Re: Bootstrap broken in libobjc/sendmsg.c
- Authentication-results: sourceware.org; auth=none
- References: <5229A8D7 dot 40600 at oracle dot com> <5229BA44 dot 9060105 at oracle dot com> <20130906122914 dot GA7052 at kam dot mff dot cuni dot cz>
> > .. looks like this is target/58269, which therefore affects
> > x86_64-linux too.
>
> Now this reproduces to me, too. apppy_args expansion is trying to preserve AVX
> register in V8SF mode when AVX is disabled. This leads to move expander to not
> allow moving it and we end up infinitely recursing trying to expand the move.
> I am not sure what change triggered it. I am looking into fix.
I am testing the following. Obviously AVX mode is not OK for SSE reg
when AVX is disabled. Other code paths allowing AVX modes seems to be propertly
guarded.
Index: config/i386/i386.c
===================================================================
--- config/i386/i386.c (revision 202322)
+++ config/i386/i386.c (working copy)
@@ -34466,7 +34471,7 @@ ix86_hard_regno_mode_ok (int regno, enum
/* OImode move is available only when AVX is enabled. */
return ((TARGET_AVX && mode == OImode)
- || VALID_AVX256_REG_MODE (mode)
+ || (TARGET_AVX && VALID_AVX256_REG_MODE (mode))
|| VALID_SSE_REG_MODE (mode)
|| VALID_SSE2_REG_MODE (mode)
|| VALID_MMX_REG_MODE (mode)