This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [00/32] Remove global call sets: rtlanal.c

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  <>
> gcc/
> 	* 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.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]