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: Jakub Jelinek <jakub at redhat dot com>
- Cc: Jan Hubicka <hubicka at ucw dot cz>, Paolo Carlini <paolo dot carlini at oracle dot com>, "'gcc at gcc dot gnu dot org'" <gcc at gcc dot gnu dot org>, hjl dot tools at gmail dot com
- Date: Fri, 6 Sep 2013 16:40:32 +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> <20130906123801 dot GB7052 at kam dot mff dot cuni dot cz> <20130906124508 dot GR23437 at tucnak dot redhat dot com>
> On Fri, Sep 06, 2013 at 02:38:01PM +0200, Jan Hubicka wrote:
> > > > .. 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.
>
> Sounds like http://gcc.gnu.org/ml/gcc-bugs/2013-09/msg00308.html
> Please look at PR58139 and PR58269, various patches have been posted or
> attached for that.
>
> BTW, I wonder why this spot doesn't contain also
> (TARGET_AVX512F && VALID_AVX512F_REG_MODE (mode))
I have tested and comitted the patch now. Hj, can you please look into the
(TARGET_AVX512F && VALID_AVX512F_REG_MODE (mode)) issue? It seems like obvious
omission but I can not test the patch.
Honza
>
> > --- 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)
>
> Jakub