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: [26/32] Remove global call sets: regrename.c

On 9/11/19 1:16 PM, Richard Sandiford wrote:
> This patch makes regrename use a similar mask-and-clobber-set
> pair to IRA when tracking whether registers are clobbered by
> calls in a region.  Testing for a nonzero ABI mask is equivalent
> to testing for a register that crosses a call.
> Since AArch64 and c6x use regrename.h, they need to be updated
> to include function-abi.h first.  AIUI this is preferred over
> including function-abi.h in regrename.h.
> 2019-09-11  Richard Sandiford  <>
> gcc/
> 	* regrename.h (du_head::call_clobber_mask): New field.
> 	(du_head::need_caller_save_reg): Replace with...
> 	(du_head::call_abis): ...this new field.
> 	* regrename.c: Include function-abi.h.
> 	(call_clobbered_in_chain_p): New function.
> 	(check_new_reg_p): Use crtl->abi when deciding whether a register
> 	is free for use after RA.  Use call_clobbered_in_chain_p to test
> 	whether a candidate register would be clobbered by a call.
> 	(find_rename_reg): Don't add call-clobber conflicts here.
> 	(rename_chains): Check call_abis instead of need_caller_save_reg.
> 	(merge_chains): Update for changes to du_head.
> 	(build_def_use): Use call_insn_abi to get the ABI of the call insn
> 	target.  Record the ABI identifier in call_abis and the set of
> 	fully or partially clobbered registers in call_clobber_mask.
> 	Add fully-clobbered registers to hard_conflicts here rather
> 	than in find_rename_reg.
> 	* config/aarch64/cortex-a57-fma-steering.c: Include function-abi.h.
> 	(rename_single_chain): Check call_abis instead of need_caller_save_reg.
> 	* config/aarch64/falkor-tag-collision-avoidance.c: Include
> 	function-abi.h.
> 	* config/c6x/c6x.c: Likewise.

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