This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH i386] Move CLOBBERED_REGS earlier in register class list
- From: Jan Hubicka <hubicka at ucw dot cz>
- To: Alexander Monakov <amonakov at ispras dot ru>
- Cc: gcc-patches at gcc dot gnu dot org, Rich Felker <dalias at libc dot org>, ubizjak at gmail dot com, vmakarov at redhat dot com
- Date: Sun, 10 May 2015 18:44:05 +0200
- Subject: Re: [PATCH i386] Move CLOBBERED_REGS earlier in register class list
- Authentication-results: sourceware.org; auth=none
- References: <1430757479-14241-1-git-send-email-amonakov at ispras dot ru> <1430757479-14241-3-git-send-email-amonakov at ispras dot ru>
> On 32-bit x86, register class CLOBBERED_REGS is a proper subset of
> LEGACY_REGS, which causes IRA not to consider it separately for register
> allocation, even when it has lower cost than other classes. This patch is
> useful to fix code generation problem that appears with no-PLT PIC tailcalls.
>
> Was there a specific reason for CLOBBERED_REGS class to be listed as late as
> it is? On 32-bit this class contains only EAX, ECX, EDX.
Uros moved CLOBBERED_REGS late in
https://gcc.gnu.org/ml/gcc-patches/2012-08/msg00796.html
which contains a rationale, too.
I am adding Uros and Vladimir to CC just in case they missed the email :)
Honza
>
> OK?
> * config/i386/i386.h (enum reg_class): Move CLOBBERED_REGS before Q_REGS.
> (REG_CLASS_NAMES): Ditto.
> (REG_CLASS_CONTENTS): Ditto.
>