This is the mail archive of the
mailing list for the GCC project.
Re: [00/32] Remove global call sets: rtlanal.c
- From: Jeff Law <law at redhat dot com>
- To: gcc-patches at gcc dot gnu dot org, richard dot sandiford at arm dot com
- Date: Sun, 29 Sep 2019 16:21:07 -0600
- Subject: Re: [00/32] Remove global call sets: rtlanal.c
- References: <firstname.lastname@example.org> <email@example.com>
On 9/11/19 1:17 PM, Richard Sandiford wrote:
> The reg_set_p part is simple, since the caller is asking about
> a specific REG rtx, with a known register number and mode.
> The find_all_hard_reg_sets part emphasises that the "implicit"
> behaviour was always a bit suspect, since it includes fully-clobbered
> registers but not partially-clobbered registers. The only current
> user of this path is the c6x-specific scheduler predication code,
> and c6x doesn't have partly call-clobbered registers, so in practice
> it's fine. I've added a comment to try to disuade future users.
> (The !implicit path is OK and useful though.)
> 2019-09-11 Richard Sandiford <firstname.lastname@example.org>
> * rtlanal.c: Include function-abi.h.
> (reg_set_p): Use call_insn_abi to get the ABI of the called
> function and clobbers_reg_p to test whether the register
> is call-clobbered.
> (find_all_hard_reg_sets): When implicit is true, use call_insn_abi
> to get the ABI of the called function and full_reg_clobbers to
> get the set of fully call-clobbered registers. Warn about the
> pitfalls of using this mode.