This is the mail archive of the
gcc@gcc.gnu.org
mailing list for the GCC project.
Re: i386-coff: regression from gcc 2.8.1
- To: Marc dot Espie at liafa dot jussieu dot fr
- Subject: Re: i386-coff: regression from gcc 2.8.1
- From: John Wehle <john at feith dot com>
- Date: Thu, 17 Dec 1998 23:50:00 -0500 (EST)
- Cc: egcs at egcs dot cygnus dot com, egcs-bugs at egcs dot cygnus dot com
> For that specific code fragment, I've traced the trouble to the regmove
> `optimization'. If I disable it for egcs, I get the exact same code that
> I used to get for gcc 2.8.1.
I haven't look at the details of your problem so that following may not
apply. There was an improvement to regmove on June 11, 1998 which resulted
in better register numbering so that reload did less work. Unfortunately
in some situations the register in questioned was allocated by local-alloc
and spilled by reload. Prior to the change reload would allocate another
hard register in order to satisfy the RTL template (which required that
one of the input operands be the same as the output operand). This wasn't
necessary after the change since regmove already took care of the constraint.
This would be fine but for the fact that registers allocated by local-alloc
which are spilled to the stack are normally left there.
If this is your problem then following patch which is already in CVS may
be of help. In general the current development tree is much better at
handling register spillage.
ChangeLog:
Sat Sep 5 16:34:34 EDT 1998 John Wehle (john@feith.com)
* global.c: Update comments.
(global_alloc): Assign allocation-numbers
even for registers allocated by local_alloc in case
they are later spilled and retry_global_alloc is called.
(mark_reg_store, mark_reg_clobber,
mark_reg_conflicts, mark_reg_death): Always record a
conflict with a pseudo register even if it has been
assigned to a hard register.
(dump_conflicts): Don't dump pseudo registers already
assigned to a hard register.
* local-alloc.c: Update comment.
-- John
-------------------------------------------------------------------------
| Feith Systems | Voice: 1-215-646-8000 | Email: john@feith.com |
| John Wehle | Fax: 1-215-540-5495 | |
-------------------------------------------------------------------------