This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: compile of libc-2.0.7pre3 fails with egcs-2.91.22 980404
- To: john at feith dot com (John Wehle)
- Subject: Re: compile of libc-2.0.7pre3 fails with egcs-2.91.22 980404
- From: Jim Wilson <wilson at cygnus dot com>
- Date: Mon, 20 Apr 1998 14:46:29 -0700
- cc: egcs-bugs at cygnus dot com, mharnois at sbt dot net
The mov??_push_memory_through_reg patterns were implemented for SF and DF
in addition to XF in an effort to improve code quality.
Ok.
Doesn't this imply that TARGET_PUSH_MEMORY handling for integers is
slightly suboptimal?
It sounds like if reload notices that a pseudo SI register failed to get
a hard register, then it will spill registers instead of just using a
instruction which pushes the memory directly on the stack. Wouldn't
pushing the memory directly on the stack in this situation probably be
cheaper then spilling registers regardless of the processor?
Since we usually need at least one spill register anyways, it seems
unlikely that we will get worse code because of this. All we are doing is
using a spill register that we would have needed to allocate anyways. If
there is no other insn that needs a reload, and we must spill a value in
order to get a register for the reload, then we probably would get faster code
if the patterns were combined. I suspect that will be pretty uncommon though,
and that we will get faster code more often than we will get slower code.
Only real way to know though is to do some experiments and try to measure it.
Jim