flow patch for building ia64
Thu Jul 26 17:15:00 GMT 2001
On Thu, Jul 26, 2001 at 02:30:52PM -0700, firstname.lastname@example.org 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....
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