On 15-01-14 17:53, Tom de Vries wrote:
Eric,
This patch adds scanning of clobbers in CALL_INSN_FUNCTION_USAGE to
find_all_hard_reg_sets.
For MIPS, calls are split at some point. After the split, one of the resulting
insns may clobber $6. But before the split, that's not explicit in the rtl
representation of the unsplit call.
For -fuse-caller-save, that's a problem, and Richard S. suggested to add the
clobber of $6 to the CALL_INSN_FUNCTION_USAGE of the unsplit call.
I wrote a patch for that (
http://gcc.gnu.org/ml/gcc-patches/2014-01/msg00730.html ), but found that doing
so did not fix the problem with -fuse-caller-save, because
find_all_hard_reg_sets (the mechanism -fuse-caller-save uses to detect which
registers are set or clobbered) does not take CALL_INSN_FUNCTION_USAGE into
account. This patch fixes that.
Build and reg-tested on MIPS.
OK for stage1 if x86_64 bootstrap & reg-test succeeds?
Eric,
Ping of this ( http://gcc.gnu.org/ml/gcc-patches/2014-01/msg00888.html ) patch.
Ok for stage1?
Thanks,
- Tom