This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: compile of libc-2.0.7pre3 fails with egcs-2.91.22 980404


	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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]