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

Reply via email to