flow patch for building ia64

Richard Henderson rth@redhat.com
Thu Jul 26 17:15:00 GMT 2001

On Thu, Jul 26, 2001 at 02:30:52PM -0700, amacleod@cygnus.com wrote:
> So... there are 2 solutions. Since this doesn't seem to be 
> affecting anything except ia64, the simple thing is to 
> not mark the return_address_register as call-killed. b0 is
> marked, so I dont think this will have any undesired side effects.

This one is in pricipal correct, but can't actually be used.
CALL_USED_REGISTERS *must* include all fixed registers.  This
is a bit of historical stupidity that I've not been brave 
enough to fix for 3 years now.

> The other option would be to look at the register generated by the 
> call to gen_rtx_REG and test whether it is call clobbered or not. 
> This seem like a more general solution, but I dont know if that
> might have other unexpected side effects....

Ug, no.

I think the best short-term solution is to add an optional
CALL_SAVED_FIXED_REGISTERS (or something) that the target can use
to communicate what the contents of CALL_USED_REGISTERS ought to
be were it not for the historical mistake.

We can then use that in building regs_invalidated_by_call.


More information about the Gcc-bugs mailing list